具有多个表达式的 MySQL If 语句

MySQL If statement with multiple expression

提问人:Amirhossein Aliakbarpour 提问时间:7/26/2023 最后编辑:Amirhossein Aliakbarpour 更新时间:7/26/2023 访问量:72

问:

我想在里面的语句中执行多个表达式,如下所示:ifselect

SELECT 
  t.id,
  IF (
    id > 10,
    @var1 := t.id; @var2 := t.title,
    t.title
  )
FROM
  table

有没有办法在单个语句中执行这两个表达式?@var1 := t.id; @var2 := t.titleif

mysql if语句

评论

1赞 nbk 7/26/2023
做出不同的 if 语句
0赞 Akina 7/26/2023
这是 IF() 函数,而不是语句。
0赞 Akina 7/26/2023
有没有办法在单个 if 语句中执行这两个表达式?这是可能的,尤其是当至少一列不可为 null 时。

答:

1赞 nbk 7/26/2023 #1

你可以做

SELECT 
  t.id,
  IF (
    id > 10,
    CONCAT(@var1 := t.id , @var2 := t.title),

    t.title
  )
FROM
  table1 t;
SELECT @var2;
SELECT @var1;

但用户定义的变量是标量值,因此您只能获得为 @var1 和 @var2 选择的最后值,但它现在将显示串联的值。

所以如果你有多行,这根本没有意义