我有一个整数列,表中几乎所有行都设置为1,大约10行设置为2,6行设置为3。我希望a从表中选择该列不等于3的所有行,但获取最近更新的行,其中该行等于3。我还有一个updated_at列,它是日期列。
这是我到目前为止提出的sql。
SELECT *
FROM mytable
LEFT JOIN (SELECT *
FROM mytable
WHERE spec_id=3
ORDER BY updated_at DESC LIMIT 1) mytable2
ON mytable.id=mytable2.id
但是,此语句将获取spec\u id设置为3的所有6行。
请帮忙。
最佳答案
只需使用union all
(SELECT * FROM mytable WHERE spec_id=3 ORDER BY updated_at DESC LIMIT 1)
UNION ALL
SELECT * FROM mytable WHERE spec_id!=3
关于sql - 抓取表中的所有行,并在有条件的情况下抓取一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56387291/