MYSQL临时表的处理

hiphopthehook 2009-09-22 03:54:01
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询


我想问下该如何处理通过临时表进行数据的处理和优化。。各位朋友能否举一个实际的例子。。
...全文
1418 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-09-23
  • 打赏
  • 举报
回复
http://www.cnblogs.com/ashun/archive/2007/04/12/idcard-areacode.html
身份证号码前六位所代表的省,市,区, 以及地区编码下载



如果你已经有和身份证号码,则可以在GOOGLE找一下 身份证号码 地区代码
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
我有这样的列表 那该如何处理 怎么通过全国列表进行处理?
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
我可不可以删除字段里面内容的几个字符 ?

比如 地址
江西省南昌市西湖区XXX号

我想删除 XXX号

变成 江西省南昌市西湖区。
ACMAIN_CHM 2009-09-23
  • 打赏
  • 举报
回复
只依靠你现有的表中数据无法处理。

北京市海淀区XXX

这种情况则比较困难,除非你先有一个全国 省名的列表,则可以把省名去掉,但区名则没有办法。
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
如果 我只需要地址里面的 ”南昌市 北京东路“ 该如何处理?
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
create table addr(
pro varchar(20),
city varchar(100),
region varchar(50));

create table address(
address varchar(255));

select * from address where address like concat(pro,city,region);
这样进行分类?
ACMAIN_CHM 2009-09-23
  • 打赏
  • 举报
回复
如果是这样
"新疆维吾尔自治区XX市XX区XX“ 或者说”北京市海淀区XXX“

没以你目前的表结构设计,没有办法。

方法1。 改表结构,添加字段落( 省份 市 区 路段)
方法2。去网上想办法找一个全国 (省份 市 区)的表,然后可以精确和你的现在表内的地址进行对比, where 地址 like concat(省份,市, 区)
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
是的 该用什么办法来解决这类问题呢,数据处理都是这类的问题 需要通过一个号码 或者 身份证 或者地址来判断很多信息。。
ACMAIN_CHM 2009-09-23
  • 打赏
  • 举报
回复
省份 市 区 路段

这个不是临时表的问题,关键是怎么从你的地址中把这些信息提取出来。

需要分析你的数据了, 如果只是这种格式 "江西南昌西湖北京东路XX号" 则可以通过这几个字来进行字符串分析处理,但如果有 "新疆维吾尔自治区XX市XX区XX“ 或者说”北京市海淀区XXX“ 则比较麻烦了。
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
如果是这样的 姓名 年龄 电话号码 住址

小王 18 00000 江西省南昌市西湖区北京东路XX号


我建个临时表 需要:
姓名 年龄 电话 省份 市 区 路段

这个表该如何得到? 谢谢各位了
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
兄台 给个具体的例子啊 本来学艺不精。。 望指教~
vinsonshen 2009-09-23
  • 打赏
  • 举报
回复
其实,就是清楚源数据的一些特性,利用函数进行处理就行了

如身份证中取的19870125这段串,就表示出生年月日了,这样与当前日期一减就可以得出年龄了
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
张表 : 姓名 地址 身份证 性别
老陈 南昌市西湖区北京西路XXX号 360104198708183823 男


我需要他成为 一个这样的表 姓名 年龄段 市 区 性别

其中 年龄段是这样分的 1:18岁以下 2:18-24 3: 25-35 4:35以上
性别 1: 男 2:女
--------------------------------
姓名 直接查询 年龄段你可以单独建一个表 flag floordate ceildate
对于年龄的查询也可以
SQL codemysql> select substring(right(130681198701254965,12),1,8);
+---------------------------------------------+
| substring(right(130681198701254965,12),1,8) |
+---------------------------------------------+
| 19870125 |
+---------------------------------------------+
1 row in set (0.02 sec)

对于市区就截取字符串


不明白这是什么意思,最好能详细点, 那个年龄段也能举个例子么?
ACMAIN_CHM 2009-09-23
  • 打赏
  • 举报
回复
mysql> select left('江西省南昌市西湖区XXX号',instr('江西省南昌市西湖区XXX号','区')+1);
+-------------------------------------------------------------------------+
| left('江西省南昌市西湖区XXX号',instr('江西省南昌市西湖区XXX号','区')+1) |
+-------------------------------------------------------------------------+
| 江西省南昌市西湖区 |
+-------------------------------------------------------------------------+
1 row in set (0.08 sec)

mysql>
hiphopthehook 2009-09-23
  • 打赏
  • 举报
回复
我可不可以删除字段里面内容的几个字符 ?

比如 地址
江西省南昌市西湖区XXX号

我想删除 XXX号

变成 江西省南昌市西湖区。

ACMAIN_CHM 2009-09-22
  • 打赏
  • 举报
回复
create temporary table tempTbl as select id,name from user where id<10;
hiphopthehook 2009-09-22
  • 打赏
  • 举报
回复
而且原表中的那些字段不能删除 , 里面的数据内容要完好 建立个临时表把里面的内容拿出来几个字段包括里面的内容,其他的如上面所说 谢谢了
hiphopthehook 2009-09-22
  • 打赏
  • 举报
回复
数据处理方面的 比如 很多字段的个表 只需要其中的3,4个字段 然后有 3个字段需要语句分析的,
语句分析的类似通过身份证查询到他的年龄和出身日期。。




nianzhang747 2009-09-22
  • 打赏
  • 举报
回复
mysql> create temporary table a as select * from user;
Query OK, 9 rows affected (0.22 sec)
Records: 9 Duplicates: 0 Warnings: 0
mysql> create temporary table aa as select username,t.* from user,t;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> insert into a(username) values('fd');
Query OK, 1 row affected (0.02 sec)

临时表和正常表一样 不知道你需要什么样的例子
hiphopthehook 2009-09-22
  • 打赏
  • 举报
回复
现在处理的得到需要的数据,以后会需要别的数据内容 所有不能在原表UPDATE或者INSERT,必须建立个多个临时表来进行处理得到所需要的数据 比如 我知道某个人的身份证 通过语句可以判断出他的年龄之类的。


我想通过你们给我的例子进行优化处理 郁闷啊 公司急着要数据 我这边又卡到了
加载更多回复(7)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧