gpt4 book ai didi

mysql - @variable := variable2 mean in a MySQL query? 是什么

转载 作者:行者123 更新时间:2023-11-30 23:31:09 26 4
gpt4 key购买 nike

我在代码中的 select if 中有以下查询,但我不记得包含 @lastComment := time 的行实际上做了什么?

SELECT 
IF(
(SELECT @lastComment := `time`
FROM usermessages
WHERE userId = $userId
ORDER BY id DESC
LIMIT 1)
IS NOT NULL,
DATE_SUB(NOW(), INTERVAL 30 SECOND) >= @lastComment, 1
)

看起来@lastComment只是一个临时变量保持时间,但我不明白为什么需要它,是否只是为了将它传递给其他查询?

最佳答案

显然您不想执行查询两次,这是正确的,但您可以轻松省略用户定义的变量,从而使其更清晰:

SELECT 
IFNULL(
(
SELECT DATE_SUB(NOW(), INTERVAL 30 SECOND) >= `time`
FROM usermessages
WHERE userId = $userId
ORDER BY id DESC
LIMIT 1
)
, 1
)

转换为:检查给定表达式是否为 NULL,如果是则返回 1,否则返回表达式值。

关于mysql - @variable := variable2 mean in a MySQL query? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com