php - 如何在选择前检查字段?

标签 php mysql sql if-statement

我有一个这样的表:

// 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/

相关文章:

python - 带有内连接查询的 web.py 数据库

c# - 输出无效

php - 浏览器未缓存动态 CSS - 响应返回 200 OK 而不是 304 Not Modified

php - 如何在不加载整个页面的情况下加载单个 Div 并显示加载状态?

java - 扫描 mysql 表并更新列

mysql - 如何将sql查询转换为codeigniter事件记录

php - 如何将输入字段数组插入 mysql

mysql - 如何根据 if 条件将一行分成 2 行

php - 导入 XML Google 电子表格 - 帮助我编写 PHP 代码

mysql - 构造二维 MySQL 查询的最有效方法是什么?