[分享]mysql中select into from语句使用例子分析_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2592 | 回复: 0   主题: [分享]mysql中select into from语句使用例子分析        下一篇 
derek
注册用户
等级:中校
经验:1550
发帖:209
精华:0
注册:2011-7-21
状态:离线
发送短消息息给derek 加好友    发送短消息息给derek 发消息
发表于: IP:您无权察看 2014-12-8 15:27:06 | [全部帖] [楼主帖] 楼主

今天发现数据库中有一些数据乱了我需要做一个临时表来存储数据,我们根据条件来把指定ID的数据保存到临时表,然后进行数据替换操作,但在使用select into from中发现许多的问题,下面我把整理个过程与大家分享一下。

SELECT * FROM `test_table_draw` WHERE `borough_id`>=10266 and `borough_id`
<=12354


户型表

 SELECT * FROM `test_table_pic` WHERE `borough_id`>=10266 and `borough_id`
CREATE TABLE IF NOT EXISTS `test_table_tp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pic_url` varchar(200) NOT NULL,
`pic_thumb` varchar(200) DEFAULT NULL,
`pic_desc` varchar(200) DEFAULT NULL,
`borough_id` int(11) NOT NULL,
`creater` varchar(20) DEFAULT NULL,
`addtime` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `borough_id` (`borough_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=97289 ;
Insert into Table2(field1,field2,...) select value1,value2,... from Table1


例子

 Insert into test_table_tp select * from test_table_draw where `borough_id`>=10266 and `borough_id`
INSERT INTO test_table_tp
SELECT *
FROM test_table_draw
WHERE  `borough_id` >=10266
AND  `borough_id`


MySQL 返回:

 #1136 - Column count doesn't match value count at row 1
Insert into(id,pic_url,pic_thumb,pic_desc,borough_id,creater,addtime) test_table_tp select id,pic_url,pic_thumb,pic_desc,borough_id,creater,addtimefrom test_table_draw where `borough_id`>=10266 and `borough_id`
<=12354
Select * Into new_table_name from old_table_name;


测试仪

 Select * Into test_table_tp1 from test_table_draw where `borough_id`>=10266 and `borough_id` <=12354
SELECT *
INTO test_table_tp
FROM test_table_draw
WHERE  `borough_id` >=10266
AND  `borough_id`
LIMIT 0 , 30


MySQL 返回:

 #1327 - Undeclared variable: test_table_tp


网上找到提示要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

Select * Into test_table_tp1 from test_table_draw where `borough_id`>=10266 and `borough_id` <=12354


gg查一下发现原来 mysql 数据库是不支持 SELECT INTO FROM 这种语句的,但是经过研究是可以通过另外一种变通的方法解决这个问题的

SELECT vale1, value2, value3 into Table2 from Table1;
Create table www.111cn.net (Select A.id,B.id as typeId,A.brand,A.quanpin,A.simple from brands as A,cartype as B where A.type=B.name group by A.brand);


这个是关联两个表得出一个查询结果,然后将结果插入到一个新创建的表 www.111cn.net 中。

好了现在我再来做

Create table pic_test (Select *  from test_table_draw where `borough_id`>=10266 and `borough_id` <=12354)


成功了啊

您运行的 SQL 语句已经成功运行了。 (查询花费 0.5645 秒)
SQL 查询:

CREATE TABLE pic_test(
SELECT *
FROM test_table_draw
WHERE  `borough_id` >=10266
AND  `borough_id` <=12354
)




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论