0
假設下表更新表
source(
id INT,
name VARCAHR
)
dest(
id INT,
name VARCAHR
)
凡source
表既充滿id
和name
;和dest
填充有僅name
,具有id
集到null
有必要更新dest
表,並設置id
其的id
最相似name
從source
表
(由編輯距離計算)爲了更好地理解這是我計劃它是理想的(查詢有語法錯誤):
UPDATE dest
SET dest.id = (
SELECT source.id, levenstein_ratio(dest.name, source.name) as similarity
FROM source
GROUP BY similarity HAVING similarity > 50
ORDER BY similarity DESC
LIMIT 1
).id
我無法做出任何reasonab查詢沒有重複功能。
有沒有辦法做到這一點?效率並不重要,但有些合理的解決方案,將不勝感激
我明白了,但是這需要重複調用相同的函數。我想避免這種情況 – Eugene
如果你需要一個工作查詢......我不知道另一種方式..因爲(我重複)你必須有一個選擇結果分配給設置字段。 .....這意味着你不能定義別名的相似性,然後如果你不能使用別名..唯一的方法是重複原來的代碼.. – scaisEdge