【发布时间】:2014-05-20 21:31:41
【问题描述】:
您好,我正在编写一个使用插入和更新的查询,更新有一个选择一个或多个行的子查询。 当我运行查询时,我收到以下错误:“#1235 - 此版本的 MySQL 尚不支持 'LIMIT & IN/ALL/ANY/SOME 子查询”
奇怪的是我用的是最新版本的mysql,而且这个功能从5.1开始就支持了。我的查询如下:
INSERT INTO Orders
(OrderID, Orderdate, Leverdate, status)
VALUES ('', now(), '2014-21-05', 'In Behandeling');
UPDATE Dozen SET OrderID = LAST_INSERT_ID()
WHERE OrderID IN (SELECT DoosID FROM Dozen Limit 0,3);
如何将此查询重写为 mysql 可以理解和执行的内容?
提前致谢!
【问题讨论】:
-
为什么不能把IN改成=,因为子查询只返回1个结果?
-
正如@pascalvgemert 所说,没有理由使用 IN 因为你只返回一行和一列
-
这一行只是一个例子,可能不好但没关系。在我的 php 版本中,“1”是一个变量