gpt4 book ai didi

mysql - 将错误消息列值与查询中使用的列名称进行匹配

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

因此查询:

ALTER TABLE table ADD PRIMARY KEY (id_0_col, id_1_col, text_01_col, text_02_col);

产生错误:

Error Code: 1062. Duplicate entry '11535-1013-FRA-TZN-MON-TON' for key 'PRIMARY'

在查询中使用了 4 列。这些列中的一些值带有连字符。 mysql 生成的错误消息使用连字符来分隔列值。

如何将错误消息中的值与查询中使用的列名称进行匹配,以构建后续查询来查找有问题的行?

最佳答案

要查找有问题的行(重复行),您只需将 GROUP BYHAVING 结合使用即可。以下查询将获取与其对应的多于一行的所有组合:

SELECT 
id_0_col, id_1_col, text_01_col, text_02_col
FROM your_table_name
GROUP BY id_0_col, id_1_col, text_01_col, text_02_col
HAVING COUNT(*) > 1

现在,要获取所有这些行,您只需将此查询包装在 Derived Table 中即可。 ,然后连接回来以获取所有“有问题的行”:

SELECT 
t.*
FROM your_table_name AS t
JOIN (
SELECT
id_0_col, id_1_col, text_01_col, text_02_col
FROM your_table_name
GROUP BY id_0_col, id_1_col, text_01_col, text_02_col
HAVING COUNT(*) > 1
) AS dt ON dt.id_0_col = t.id_0_col
AND dt.id_1_col = t.id_1_col
AND dt.text_01_col = t.text_01_col
AND dt.text_02_col = t.text_02_col

关于mysql - 将错误消息列值与查询中使用的列名称进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712038/

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