gpt4 book ai didi

mysql - 如何使用连接仅在条件为真时插入?

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

在进行更新时,我可以检查相关列是否用户有权更新,如下例所示:

UPDATE answer
JOIN test ON answer.test_id = test.id
SET
test_answer.answer = 'this is my answer'
WHERE answer.id = 4 AND test.user_id = 8;

我想在插入时做类似的事情,但我不知道如何做。我尝试过这样的事情:

INSERT INTO
answer (id, test_id, answer)
VALUES
(null, 10, 'this is my answer')
JOIN
test AS test ON test.id = 10
WHERE
test.user_id = 8;

这里的想法是,只有拥有测试的用户才能向测试添加答案。

我也可以先获取 id 为 10 的测试,检查该测试的 user_id 是否为 8,然后进行插入。但我尝试在一个查询中执行此操作。

最佳答案

INSERT 没有这样的语法,您可以在其中应用 WHERE 子句。如果您希望限制用户添加答案,前提是他们有权限。这意味着您需要首先查询您的 test 表,看看用户是否有权访问此 test_id,因为每个答案都应与 test_id 关联。

SELECT test_id from test where test.id = 10 and test.user_id = 8;

如果上述查询返回任何行,则用户有权为此特定测试添加答案。然后,执行 insert SQL,您不需要任何 WHERE 子句(正如您所尝试的那样)。

关于mysql - 如何使用连接仅在条件为真时插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48423840/

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