我有一个像
这样的查询UPDATE myproject.empinfo SET country="XYZ" WHERE emp_id = 2 order by stars desc limit 5 ;
SELECT id FROM myproject.emp where version = 'New'
它将做的是将排名前5的员工国家/地区设置为XYZ,并按其明星排序。
但是在这个查询中,我已经将emp_id赋予了2 ...我可以轻松地为一个emp执行此操作,但现在我想要一个可以更新emp表中employee的所有empinfo的查询。
它应该在我的第二个查询中得到所有emp的id并使它们成为像(1,2,3,...)
的数组并将其传递给
UPDATE myproject.empinfo SET country="XYZ" in($employeeIdarray) order by stars desc limit 5 ;
该employeeidarray应该是ids数组
如何在一个查询中执行此操作?
答案 0 :(得分:1)
您可以使用GROUP_CONCAT
和逗号将它们分开。
UPDATE myproject.empinfo
SET country="XYZ"
WHERE emp_id IN(select GROUP_CONCAT(id SEPARATOR ',')
from myproject.emp
where version = 'New')
ORDER BY stars desc
LIMIT 5;