我有一个这样的表:
// Names
+----+--------+------------+
| id | name | visibility |
+----+--------+------------+
| 1 | Alex | 1 |
| 2 | Jack | 0 |
| 3 | Peter | 1 |
+----+--------+------------+
我想选择name
,但我需要在选择之前检查它的visibility
。换句话说,我希望它在可见性为 1
时返回名称,在可见性为 0
时返回 null
。我怎样才能在查询中做到这一点?
SELECT (check visibility here) AS name FROM Names WHERE id = :id;
我可以像这样通过 PHP 做到这一点:
if ($result['visibility'] == 1) {
$name = $result['name'];
} else {
$name = null;
}
但我想通过纯 SQL 来做到这一点。
最佳答案
您可以使用 if
,它等同于 MySQL 中的 case
表达式。
SELECT if(visibility=1,name,null) name FROM Names WHERE id = :id
关于php - 如何在选择前检查字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748786/