vsh*_*ale 11 mysql select where
假设我有以下表格:
ID, Name
1, John
2, Jim
3, Steve
4, Tom
Run Code Online (Sandbox Code Playgroud)
我运行以下查询
SELECT Id FROM Table WHERE NAME IN ('John', 'Jim', 'Bill');
Run Code Online (Sandbox Code Playgroud)
我希望得到类似的东西:
ID
1
2
NULL or 0
Run Code Online (Sandbox Code Playgroud)
可能吗?
小智 5
这个怎么样?
SELECT Id FROM Table WHERE NAME IN ('John', 'Jim', 'Bill')
UNION
SELECT null;
Run Code Online (Sandbox Code Playgroud)
首先创建一个您正在寻找的名称子查询,然后将子查询加入到您的表中:
SELECT myTable.ID
FROM (
SELECT 'John' AS Name
UNION SELECT 'Jim'
UNION SELECT 'Bill'
) NameList
LEFT JOIN myTable ON NameList.Name = myTable.Name
Run Code Online (Sandbox Code Playgroud)
这将返回null未找到的每个名称.要改为返回零,只需用SELECT COALESCE(myTable.ID, 0)而不是启动查询SELECT myTable.ID.
有一个SQL小提琴这里.
| 归档时间: |
|
| 查看次数: |
85963 次 |
| 最近记录: |