【发布时间】:2015-03-22 03:48:59
【问题描述】:
这些是我的表(简化):
mytable
--------------------
`pid` int(11) NOT NULL AUTO_INCREMENT
`mydate` date NOT NULL,
pictures
--------------------
`pid` int(11) NOT NULL AUTO_INCREMENT
`image_name` varchar(255)
pictures_2014
--------------------
`pid` int(11) NOT NULL AUTO_INCREMENT
`image_name` varchar(255)
这是我的代码:
SET AUTOCOMMIT=0;
START TRANSACTION;
SELECT @pids := GROUP_CONCAT(CONVERT(pid , CHAR(8)))
FROM `mytable`
WHERE `mydate`
BETWEEN '2014-01-01'
AND '2014-10-31';
INSERT INTO pictures_2014 SELECT * FROM `pictures` where pid in(@pids);
COMMIT;
只有一个项目被插入到图片_2014 中,即逗号分隔列表中的第一个项目。
我期望的结果是所有与我的第一个查询匹配的 4111 行(至少在 pictures 中的那些)都将被复制。
我知道至少在 phpmyadmin 中显示的 group_concat 中的前 6 个 pid 存在于表格图片中
我还尝试在我的第一个查询中添加 LIMIT 0,100 以查看它是否是一个可变长度问题,但我仍然只得到一个结果。
【问题讨论】:
标签: mysql transactions