![](/img/trans.png)
[英]If fetched data from MySql is smaller than *number*, show this, else show something else?
[英]Using something else than IN for subquery mysql
嗨,我正在写一个使用插入和更新的查询,更新包含一个选择一个或多个行的子查询。 当我运行查询时,出现以下错误:“#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将理解并执行的内容?
提前致谢!
使用INNER JOIN
UPDATE Dozen
INNER JOIN Orders ON DoosID = OrderID
SET Dozen.OrderID = LAST_INSERT_ID()
或将IN更改为=,因为您的子查询总会返回1条记录。
UPDATE Dozen
SET OrderID = LAST_INSERT_ID()
WHERE OrderID = (SELECT DoosID FROM Dozen LIMIT 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.