在我的數據庫我有品牌名稱的表,我需要把它清理乾淨 ,因爲我有一些重複的像MYSQL/PHP如何找到以同一個單詞開始的所有行?
Yadda
Yadda &聯合
Yadda工程
哪些是同一品牌,但多次輸入錯誤儘管列是獨特的
如何處理這個?這隻能在mysql查詢中完成嗎?
感謝
在我的數據庫我有品牌名稱的表,我需要把它清理乾淨 ,因爲我有一些重複的像MYSQL/PHP如何找到以同一個單詞開始的所有行?
Yadda
Yadda &聯合
Yadda工程
哪些是同一品牌,但多次輸入錯誤儘管列是獨特的
如何處理這個?這隻能在mysql查詢中完成嗎?
感謝
您可以使用SUBSTR
假設你行的話「Yadda」開頭的,你可以
select * from my_table
where substr(my_column, 1, length('Yadda')) = 'Yadda');
然後,如果你需要刪除,你可以(假設不當行你想要保存行'Yadda & Co'你可以
delete from my_table
where substr(substr(my_column, 1, length('Yadda')) = 'Yadda')
and my_column <> 'Yadda & Co';
或美國
delete from my_table
where substr(substr(my_column, 1, length('American')) = 'American')
and my_column not in ('American Standard', 'American Airlines');
SELECT Name FROM Table WHERE Name REGEXP '^[Y].*$'
在這個正則表達式表示正則表達式
和
這是T-SQL
SELECT Name FROM Table WHERE Name LIKE '[Y]%'
我的報價第一爲搜索欄創建全文索引。 完整文本分數後,您可以確定字符串的相似性。 刪除它們,除非它們的分數高於閾值。
DELETE FROM table_name
WHERE
id <> (SELECT id FROM table_name ORDER BY MATCH (title) AGAINST ('Yada' IN NATURAL LANGUAGE MODE) DESC LIMIT 0,1) AND
MATCH (title) AGAINST ('Yada' IN NATURAL LANGUAGE MODE) < threshold
而且不是關閉全文可以在這個答案使用levenshtein
功能(具有相同的邏輯SQL查詢) how to compute similarity between two strings in MYSQL
答案是否解決了您的問題? –
取決於項目如何比扎羅是所謂的匹配。 – Drew
你有公司「美國通用」和「美國標準」,你想以神奇的方式處理所有這些權利。祝一切順利。 – Drew
這個問題的最佳解決方案是避免品牌名稱的重複。 U可以使用html中的select選項列出可能的品牌。 (有點難以找到並列出所有品牌) – jophab