gpt4 book ai didi

MySQL 查询删除连字符重复项

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

我正在 Coursera 上参加 Duke 的 MySQL 类(class)。第二周提到了困惑的数据,我想我应该在这里问我的问题。我的问题的范围是如何比较表中一行中已经与实例匹配的条目,只不过它是用连字符输入的,即“Golden Retriever Mix”与“Golden Retriever-Mix”是同一实例。当我运行 DISTINCT SELECT 语句时,我不希望它提取两个结果。问题是,我们不能只从列字段中删除所有连字符,因为我们仍然需要它们来输入“金毛猎犬-万能梗混合犬”。查询将如何执行此操作。下面是提取“Golden Retriever Mix”和“Golden Retriever- Mix”的示例代码。

SELECT DISTINCT breed,
TRIM(LEADING '-' FROM breed)
FROM dogs
ORDER BY (LEADING '-' FROM breed) LIMIT 1000, 1000;

我想我需要 IF/THEN 语句IF(REPLACE(品种,'-','') = 品种)
然后删除品种;

显然这不是我正在寻找的正确语法。

最佳答案

我认为您正在寻找的是 Levenshtein 距离 ( https://en.wikipedia.org/wiki/Levenshtein_distance )。这个计算单词之间的差异,例如“Test”和“Test1”的比较结果将是 1,因为多了一个字母。您可以使用建议的程序 How to add levenshtein function in mysql?Levenshtein: MySQL + PHP

这不仅会显示所有带有前导“-”的条目,甚至还包括拼写错误的条目。然后您可以通过计算的距离过滤结果数据。

如果您由于性能问题而不需要此符号,您仍然可以使用 TRIMREPLACE 来过滤符号并将其与其他字符串进行比较。

关于MySQL 查询删除连字符重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43886365/

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