sql - 如何在 SQL WHERE 条件上创建 IF 而无需 ELSE?

标签 sql

我正在尝试进行一个选择用户的查询,如果用户类型等于 1,我需要选择有年龄的用户。我的 table :

  id (int 11) | type (int 11) | email (varchar 25) | age (int 11)

我的查询:

SELECT * FROM users WHERE IF(type = 1, age <> 0)

问题是我需要有一个 ELSE 条件,但在这种情况下我不需要一个。如何在没有 else 条件的情况下在 WHERE 中创建 IF?

谢谢

最佳答案

您可以使用CASE来做到这一点:

SELECT * FROM users 
WHERE age = CASE WHEN type <> 1 THEN age ELSE 0 END

关于sql - 如何在 SQL WHERE 条件上创建 IF 而无需 ELSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59161940/

相关文章:

php - MySQL - 过滤结果

sql - 按成分名称查找食谱,并尽可能排序

sql - SQL 中的 IN 运算符 (PostgreSQL)

mysql - SQL 查询以计算恰好有 91 个重复项的 ID

PHP MySQL 将来自不同行的具有相同值的单元格组合在一起

sql - Azure 中具有聚集索引的表出现聚集索引错误

mysql - 如果 3 个字段匹配,则插入或更新 MySQL 数据库

java - 包含时间戳日期比较的 SQL 查询

sql - 有什么方法可以使这个 PostgreSQL 计数查询更快?

sql - db 将特定值附加到所有记录的特定字段