我被卡住了,我想不通,所以我很感激任何帮助。
此时我有表journal,它由列组成:
id | name | type(int) | classification | data | journalUser | start_date(default NULL)
1 | John | 1 | 2 | data123 | 1 | 10-11-2019
2 | Peter | 2 | 2 | data123 | 1 | 10-11-2019
3 | Ash | 2 | 2 | data123 | NULL | NULL
4 | BUBU | 2 | 2 | data123 | 3 | 10-11-2019
我想在我全选的地方进行查询,但有异常(exception),例如:SELECT * from journal,但如果列类型 = 2,则如果 journalUser = 1 并且第二次检查是否列类型 = 2 并且start_date IS NULL,而不是选择这一行。
作为结果,从上表中,从我想得到的查询中得到结果
id | name | type(int) | classification | data | journalUser | start_date(default NULL)
1 | John | 1 | 2 | data123 | 1 | 10-11-2019
2 | Peter | 2 | 2 | data123 | 1 | 10-11-2019
3 | Ash | 2 | 2 | data123 | NULL | NULL
最佳答案
这是 type
为 2 时的特定情况。
要获取带有 type = 2
的行以及(考虑预期的输出)journalUser = 1
或 start_date = null
,这可以这样写:
type = 2 AND (journalUser = 1 OR start_date IS NULL)
为了确保您也有其他类型,您可以添加一个 OR
条件,例如:
OR type <> 2.
这将给出这个查询:
SELECT *
FROM journal
WHERE (type = 2 AND (journalUser = 1 OR start_date IS NULL))
OR type <> 2
关于mysql - 选择所有,除非 MYSQL 中的特定单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758401/