我想知道....如果WHERE語句的值與輸入文本類似,是否可以從mysql數據庫檢索值?類似於similar_text()函數,但適用於搜索條件。從php數據庫中選擇值,其中條件值與輸入相似
例子:
<?php
$res = mysqli_query(*CONECTION*,"SELECT value FROM table WHERE condition=*is similar to x*");
?>
如果這件事情是可能的,請告訴我怎麼樣。
我想知道....如果WHERE語句的值與輸入文本類似,是否可以從mysql數據庫檢索值?類似於similar_text()函數,但適用於搜索條件。從php數據庫中選擇值,其中條件值與輸入相似
例子:
<?php
$res = mysqli_query(*CONECTION*,"SELECT value FROM table WHERE condition=*is similar to x*");
?>
如果這件事情是可能的,請告訴我怎麼樣。
你需要利用LIKE
關鍵字的
SELECT value FROM table WHERE condition like %x%
編輯:
好像你是Levenshtein算法。看看here和here。
StackOverflow Thread
我可以指定2個值應該有多相似嗎? – SpiderLinked
'LIKE'不測試相似性。從文檔:「使用SQL簡單正則表達式比較的模式匹配」 –
或'like%x'或'like x%';-) –
SELECT value, MATCH(value) AGAINST('x' IN BOOLEAN MODE) AS similarIndex
FROM table WHERE MATCH(value) AGAINST ('x' IN BOOLEAN MODE)
ORDER BY similarIndex DESC
使用['LIKE'(http://beginner-sql-tutorial.com/sql-like-in-operators.htm)--- ['全文indexes']( http://www.tuxradar.com/practicalphp/9/3/18)也可以作爲一種選擇。 –