我正在根据从OCR扫描中提取的人名来提取一份I列表。列表的结果很好,但不是按照多个OR的顺序。...mysql
SELECT sid FROM students WHERE name ='Leah' OR name = 'Sowaka'..。(为简洁起见,将其截断。)结果是44和9,即使'leah‘是'9’。有什么简单的解决方案吗?
发布于 2019-04-20 23:54:13
如果希望按名称对结果进行排序:
SELECT sid FROM students WHERE name ='Leah' OR name = 'Sowaka' order by name如果要按它们在OR中出现的方式进行排序:
SELECT sid FROM students WHERE name ='Leah' OR name = 'Sowaka'
order by
case name
when 'Leah' then 1
when 'Sowaka' then 2
.....................
end发布于 2019-04-21 00:25:22
另一种方法是使用UNION ALL创建一个派生表,其中包含名称和序号。然后,inner连接该表并按序数排序。
SELECT s.sid
FROM students s
INNER JOIN (SELECT 1 ordinal,
'Leah' name
UNION ALL
SELECT 2 ordinal,
'Sowoka' name
...) x
ON x.name = s.name
ORDER BY x.ordinal;https://stackoverflow.com/questions/55775148
复制相似问题