这是我的mysql表
id date_created date_active
1 2014-06-07 18:24:38 NULL
2 2014-06-07 18:24:38 2014-06-07 18:24:38
3 2014-06-07 18:24:38 2014-06-07 18:24:38
4 2014-06-07 18:24:38 NULL
5 2014-06-07 18:24:38 NULL
6 2014-06-07 18:24:38 NULL
7 2014-06-07 18:24:38 2014-06-07 18:24:38
8 2014-06-07 18:24:38 2014-06-07 18:24:38
9 2014-06-07 18:24:38 2014-06-07 18:24:38
10 2014-06-07 18:24:38 NULL
Run Code Online (Sandbox Code Playgroud)
如果列为 NULL,如何设置 WHERE 选择另一列?
SELECT *
FROM TABLE
WHERE date_active = 'value'.
Run Code Online (Sandbox Code Playgroud)
如果 date_active 为 NULL,则应使用 date_created 列。
一般来说你可以使用COALESCE
SELECT *
FROM TABLE
WHERE COALESCE(date_active,date_created) = 'value'
Run Code Online (Sandbox Code Playgroud)
但这是不可控制的。根据可用的索引,您可能会发现以下内容
SELECT *
FROM TABLE
WHERE date_active = 'value' OR
(date_active IS NULL AND date_created = 'value')
Run Code Online (Sandbox Code Playgroud)
甚至
SELECT *
FROM TABLE
WHERE date_active = 'value'
UNION ALL
SELECT *
FROM TABLE
WHERE (date_active IS NULL AND date_created = 'value')
Run Code Online (Sandbox Code Playgroud)
表现更好
| 归档时间: |
|
| 查看次数: |
17468 次 |
| 最近记录: |