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看看答案太好了。。!这正是我要找的东西。。!谢谢你,伙计。!