mysql中select into from语句使用例子分析
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-24 16:06:47 浏览: 评论:0
今天发现数据库中有一些数据乱了我需要做一个临时表来存储数据,我们根据条件来把指定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` <=12354
相册表,创建一个备份表,代码如下:
- 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
执行后错误,错误SQL查询,代码如下:
- 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 这种语句的,但是经过研究是可以通过另外一种变通的方法解决这个问题的,代码如下:
Create table Table2 (Select * from Table1);
这种语句代替,代码如下:SELECT vale1, value2, value3 into Table2 from Table1;
下面看一个本人实际操作中的例子吧,代码如下:
- Create table www.phpfensi.com (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.phpfensi.com 中.
好了现在我再来做,代码如下:
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
- )
Tags: select into from语句
相关文章
- ·PHP连接MySQL数据库并向数据库增加记录(2014-03-18)
- ·mysql insert into select复制表语句(2014-09-24)
- ·mysql中insert...select复制表数据(2014-09-27)
- ·MySQL使用INSERT SELECT 批量插入数据(2014-09-28)
- ·mysql SELECT FOR UPDATE 语句用法详解(2014-09-28)
- ·MySQL选择数据库use与mysql_select_db使用详解(2014-09-29)
- ·MySQL SELECT语句使用技巧大全(2014-09-29)
- ·MySQL Select 语句检索记录使用详解(2014-10-03)
- ·Mysql中SELECT INTO 语句用法详解(2014-10-03)
- ·MySQL中select into和MSSQL select into用法区别(2014-10-03)
- ·select into outfile导出数据sql语句(2014-10-09)
- ·mysql中SELECT INTO 和 INSERT INTO SELECT 两种表复制语句(2014-10-14)
- ·zend_db_table_abstract 中使用 zend_db_select 和join, Join Left(2014-10-15)
- ·INSERT IGNORE 与 INSERT INTO的区别(2014-09-25)
- ·mysql中INSERT IGNORE 与INSERT INTO,REPLACE INTO的区别(2014-09-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)