2017-04-08 48 views
-1

所以這裏是我的查詢哪些工作,但我怎麼能限制這個距離值之間的0和4?MYSQL LIMIT LEVENSHTEIN

SELECT標題,萊文斯坦(標題, '匹配')AS距離 jb_jobs WHERE描述LIKE 「%LOREM%」 ORDER BY距離DESC

回答

1

您可以使用having條款:

SELECT title, LEVENSHTEIN(title, 'A MATCHING ') AS distance 
FROM jb_jobs 
WHERE description LIKE '%lorem%' 
HAVING distance <= 4 
ORDER BY distance DESC; 

以這種方式使用HAVING而不是GROUP BY是MySQL的擴展。在其他數據庫中,通常使用子查詢或CTE。但是,子查詢會增加額外的開銷(因爲MySQL實現了它們),MySQL不支持CTE。

+0

哦所以你可以使用HAVING別名我不知道,謝謝! – Uffo

+0

但是如果我想在兩個字段上使用LEVENSHTEIN,我們可以說我想添加到描述中,並且我將創建一個別名爲distance_two,如何爲兩個字段執行此操作?你能用一個例子更新你的答案嗎?我可以在幾分鐘內接受它 – Uffo

+1

@Uffo。 。 。是。一些數據庫支持別名(不是全部)上的「HAVING」。 MySQL不需要GROUP BY就更進一步。 –