gpt4 book ai didi

MySQL 从查询中设置变量并在另一个查询中使用它

转载 作者:行者123 更新时间:2023-11-29 11:38:25 25 4
gpt4 key购买 nike

我无法让下面的代码工作。我试图从一个查询中设置一个变量,并在另一个查询中使用它两次。如果我将第一个查询复制到变量的位置,则查询运行正常。由于第一个查询将始终返回相同的结果,因此我不想运行两次。

        SET @sid = (SELECT status_id
FROM user_relationship_status
WHERE status = 'LIKE');

INSERT INTO user_relationships (user_id, target_user_id, status_id)
VALUES (
17,
22,
@sid
)
ON DUPLICATE KEY UPDATE
status_id = VALUES(@sid)

另外,user_id 和 target_user_id 都是主键。

最佳答案

如果子查询仅返回一行,那么这是SQL Server中的有效语法。

 SET @sid = (SELECT status_id
FROM user_relationship_status
WHERE status = 'LIKE');

Mysql中你需要这样做

SELECT @sid:= status_id 
FROM user_relationship_status
WHERE status = 'LIKE'

插入查询应该类似于

我无法让下面的代码工作。我试图从一个查询中设置一个变量,并在另一个查询中使用它两次。如果我将第一个查询复制到变量的位置,则查询运行正常。由于第一个查询将始终返回相同的结果,因此我不想运行两次。

    SET @sid = (SELECT status_id
FROM user_relationship_status
WHERE status = 'LIKE');

INSERT INTO user_relationships (user_id, target_user_id, status_id)
VALUES (
17,
22,
@sid
)
ON DUPLICATE KEY UPDATE
status_id = @sid

关于MySQL 从查询中设置变量并在另一个查询中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36242929/

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