Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 仅当出现以下情况时才执行SELECT语句_Mysql_Sql - Fatal编程技术网

Mysql 仅当出现以下情况时才执行SELECT语句

Mysql 仅当出现以下情况时才执行SELECT语句,mysql,sql,Mysql,Sql,因此,我试图打印我数据库中的所有评论,但前提是它们已被批准 我最近听说可以在SQL中使用if语句,但我不确定它是如何工作的 这就是我所尝试的: SELECT name, created, comment IF('approved' = 1) FROM table_example WHERE id = 3 只有在“approved”=1时,才应执行语句 我能做点像这样的事吗?还是太离谱了 SELECT name, created, comment FROM table_example WHERE

因此,我试图打印我数据库中的所有评论,但前提是它们已被批准

我最近听说可以在SQL中使用if语句,但我不确定它是如何工作的

这就是我所尝试的:

SELECT name, created, comment IF('approved' = 1) FROM table_example WHERE id = 3
只有在“approved”=1时,才应执行语句

我能做点像这样的事吗?还是太离谱了

SELECT name, created, comment FROM table_example WHERE id = 3 AND approved = 1
还是我遗漏了什么


还是我遗漏了什么???

你可以这样做:

SELECT name, created, 
    CASE
        WHEN approved = 1 THEN comment 
        ELSE NULL 
    END as comment
FROM table_example 
WHERE id = 3

如果注释未被批准,您可以将NULL替换为您希望显示的默认值

您可以这样做:

SELECT name, created, 
    CASE
        WHEN approved = 1 THEN comment 
        ELSE NULL 
    END as comment
FROM table_example 
WHERE id = 3

如果注释未被批准,您可以将NULL替换为您希望显示的默认值

我相信您正在寻找
DECODE
CASE
操作符,因为它们是
IF/ELSE
语句的SQL等价物

我相信您正在寻找
DECODE
CASE
操作符,因为它们是
IF/ELSE
语句的SQL等价物

这完全不是IF()语句的用途。它们不能从结果集中包括/排除记录。这就是为什么有一个
where
子句。他们所能做的就是修改结果集中某个特定字段的值。首先,在数据库的表中是否有一列,您可以在其中检查哪些注释已被批准?或者它是来自外部SQL的参数?这完全不是IF()语句的用途。它们不能从结果集中包括/排除记录。这就是为什么有一个
where
子句。他们所能做的就是修改结果集中某个特定字段的值。首先,在数据库的表中是否有一列,您可以在其中检查哪些注释已被批准?或者它是一个来自外部SQL的参数?我会这么想的!真不敢相信我居然没想到!非常好用。@PinkySmartass有时最明显的可能是最难看到的!:)我会这么想的!真不敢相信我居然没想到!非常好用。@PinkySmartass有时最明显的可能是最难看到的!:)当
approved=1
comment
仅为
null
时仍将执行选择当
approved=1
comment
仅为
null