首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用子查询mysql中的IN以外的内容

问使用子查询mysql中的IN以外的内容
EN

Stack Overflow用户
提问于 2014-05-21 05:31:42
回答 1查看 49关注 0票数 0

您好,我正在编写一个使用insert和update的查询,update有一个选择一行或多行的子查询。当我运行查询时,我得到以下错误:"#1235 -这个版本的MySQL还不支持'LIMIT &IN/ALL/ANY/SOUN子查询‘“

奇怪的是,我使用的是mysql的最新版本,这个特性是从5.1开始支持的。我的疑问如下:

代码语言:javascript
复制
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可以理解和执行的内容?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-05-21 05:34:13

使用INNER JOIN

代码语言:javascript
复制
UPDATE Dozen 
INNER JOIN Orders ON DoosID = OrderID
SET Dozen.OrderID = LAST_INSERT_ID()

或者将IN更改为=,因为您的子查询无论如何都会返回1条记录。

代码语言:javascript
复制
UPDATE Dozen 
SET OrderID = LAST_INSERT_ID()
WHERE OrderID = (SELECT DoosID FROM Dozen LIMIT 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23770330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档