我有以下 MYSQL 查询,执行时显示所有无效 Comment_ID
表中的 s Order_Info
Order_Comments
中不存在的 table 。我将如何修改此查询以设置 Comment_ID
值 NULL
对于找到的每条记录?
SELECT Order_Info.*
FROM Order_Info
LEFT JOIN Order_Comments ON Order_Info.COMMENT_ID = Order_Comments.Comment_ID
WHERE Order_Comments.Comment_ID IS NULL
AND Order_Info.COMMENT_ID IS NOT NULL
Order_Comments 表如下所示:
Comment_ID Order_Number Order_Comments
14 8989 Submitted by Gordon, Customer Se...
15 4544 Please include the cd when the b...
17 8787 Previously ordered by company, a...
23 8789 We downloaded the trial. Our is q...
最佳答案
您可以使用 where 子句中使用的相关子查询来编写更新语句
UPDATE Order_Info oi
SET comment_ID = NULL
WHERE NOT EXISTS (
SELECT *
FROM Order_Comments oc
WHERE oc.comment_ID = oi.comment_ID)
简单来说:在 OrderInfo 中,当 OrderComments 中没有与该行 commentID 匹配的条目时,将 commentID 设置为 null。
语句应该是标准的 SQL,而不是特定于 mySQL 的。
关于sql - 将 MYSQL 查询的 1 列设置为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539938/