有一个表用户。基于2列数据,我需要选择行。
假设这两列是ID和ID_API。
因此,在获取数据时,我需要搜索1st如果ID_API列中存在给定值,然后选择该行。
在WHERE条件下使用其他ID。
这是什么样子
IF EXISTS (SELECT * FROM users WHERE ID_API= '12345')
BEGIN
SELECT * FROM users WHERE ID_API= '12345'
END
ELSE
BEGIN
SELECT * FROM users WHERE ID_= '12345'
END
如何管理?
最佳答案
通常,您可以查找具有ID_API = 12345
的行,或者具有ID = 12345
的行,只要没有带ID_API = 12345
的行即可:
SELECT *
FROM users
WHERE ID_API = '12345' OR
ID = '12345' AND NOT EXISTS (SELECT * FROM users WHERE ID_API = '12345')
在特殊情况下,每个用户只有一行,您可以通过搜索
ID_API = 12345
或ID = 12345
,然后按ID_API = 12345
降序对结果进行排序(因为如果为true,则返回值1)来完成此操作),然后使用LIMIT 1
限制为1行。SELECT *
FROM users
WHERE ID_API = '12345' OR ID = '12345'
ORDER BY ID_API = '12345' DESC
LIMIT 1
关于mysql - 在MySQL中基于IF EXISTS的条件SELECT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54918941/