mysql - 选择所有,除非 MYSQL 中的特定单元格值

标签 mysql sql

我被卡住了,我想不通,所以我很感激任何帮助。

此时我有表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 = 1start_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/

相关文章:

php - PDO sqlsrv 数据库连接超时

php - 在 PHP 中使用数组更新表字段

mysql - 查询表达式 '.ID' 中缺少运算符

php - 如何获取 HTML 表单以从 Mysql 数据库查询和生成结果

MYSQL 嵌套查询有两个选择

php - 覆盖复杂连接 MySQL 查询上的字段

mysql - 为什么这样的语句在 MySQL 中有效?

mysql - 更新记录的同时从同一个表中选择更新的条件?

sql - 在 Rails/ActiveRecord 中命名 SQL 查询

javascript - 小计未将更改后的值从数据库获取到输入框