我正在构建查询以从数据库中搜索多行
SELECT
*
FROM
table1
WHERE col1 = '012311'
OR col1 = '0123631'
OR col1 = '091233'
OR col1 = '092111'
Run Code Online (Sandbox Code Playgroud)
这里它返回前3个值,因为它们存在于表中,但它不返回最后一个值,因为它不在表中.那么如果没有找到该值的行,如何在查询中设置我的默认值?
有几种方法,取决于数据集.这是一种方式:
SELECT *,
IFNULL(
( SELECT col1 FROM table1
WHERE col1 IN ('012311','0123631','091233','092111')
),
'some_value'
) AS my_col1
FROM table1;
Run Code Online (Sandbox Code Playgroud)
不必复制+粘贴,您必须根据具体情况进行调整.
在MySQL中,如果找不到行,则可以使用IFNULL返回指定值,即当它返回NULL时,
SELECT IFNULL( (SELECT col1 FROM table1 WHERE col1 in (your_list)) ,'default_value_you_want_to_return');
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看 IFNULL的示例-IFNULL的示例
| 归档时间: |
|
| 查看次数: |
14292 次 |
| 最近记录: |