Mysql 难以执行嵌套更新查询
我知道以前有一两个人问过这个问题,但对我来说,这对我没有帮助。我现在做的是- 我编写了以下查询来更新表-Mysql 难以执行嵌套更新查询,mysql,Mysql,我知道以前有一两个人问过这个问题,但对我来说,这对我没有帮助。我现在做的是- 我编写了以下查询来更新表- UPDATE tbl_query_master SET view_status=1 WHERE query_id IN (SELECT query_id FROM tbl_query_master WHERE view_status=0 ORDER BY query_date ASC LIMIT 2); 但它给了我一个错误 1235-此版本的MySQL还不支持“LIMIT&IN/ALL/A
UPDATE tbl_query_master SET view_status=1 WHERE query_id IN (SELECT query_id FROM tbl_query_master WHERE view_status=0 ORDER BY query_date ASC LIMIT 2);
但它给了我一个错误
1235-此版本的MySQL还不支持“LIMIT&IN/ALL/ANY/SOME子查询”。我试过以下几件事-
1] 我已经分别执行了内部查询,即从tbl\U query\U master中选择query\U id,其中view\u status=0 ORDER BY query\u date ASC LIMIT 2,然后它给了我一个预期的结果
2] 此外,我还将内部查询替换为硬编码的值,作为更新tbl\u query\u master SET view\u status=1,其中query\u id在52,53中,在本例中,它也给出了预期的结果。谢谢你 为什么不改用join
UPDATE tbl_query_master t1
INNER JOIN (
SELECT query_id FROM tbl_query_master
WHERE view_status=0
ORDER BY query_date ASC LIMIT 2)
as t2 on t1.query_id = t2.query_id
SET t1.view_status=1 ;
首先尝试选择,看看是否正确
SELECT * from tbl_query_master t1
INNER JOIN (
SELECT query_id FROM tbl_query_master
WHERE view_status=0
ORDER BY query_date ASC LIMIT 2)
as t2 on t1.query_id = t2.query_id;
@AlexGreg是5.5.33看看答案太好了。。!这正是我要找的东西。。!谢谢你,伙计。!