gpt4 book ai didi

mysql - 相同的 where 条件但错误导致 mysql delete 和 select

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

DELETE
FROM TB_VALIDATE_PARAM
WHERE UPPER(CONCAT(c_object_id, c_column_code)) NOT IN (
SELECT UPPER(CONCAT(COL.TABLE_NAME, COL.COLUMN_NAME))
FROM information_schema.COLUMNS AS COL
WHERE COL.TABLE_SCHEMA = 'jlink'
);

SELECT *
FROM TB_VALIDATE_PARAM
WHERE UPPER(CONCAT(c_object_id, c_column_code)) NOT IN (
SELECT UPPER(CONCAT(COL.TABLE_NAME, COL.COLUMN_NAME))
FROM information_schema.COLUMNS AS COL
WHERE COL.TABLE_SCHEMA = 'jlink'
);

如你所见,数据库是MYSQL。DELETESELECT的条件相同。但是当SELECT时无法获取任何行,DELETE 删除表中的所有数据。我确定表 TB_VALIDATE_PARAM 有这么多行。Mysql 分析条件是否与 SELECTDELETE 不同?

最佳答案

试试这是否适合你。

DELETE FROM TB_VALIDATE_PARAM 
USING TB_VALIDATE_PARAM AS TP INNER JOIN information_schema.COLUMNS AS COL
WHERE UPPER(CONCAT(TP.c_object_id, TP.c_column_code)) <> UPPER(CONCAT(COL.TABLE_NAME, COL.COLUMN_NAME))
AND COL.TABLE_SCHEMA = 'jlink'

关于mysql - 相同的 where 条件但错误导致 mysql delete 和 select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071142/

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