我在找做在MySQL/PHP以下搜索的有效途徑...在MySQL/PHP中進行大致搜索匹配的最佳方式是什麼?
想象我有一些在我的數據庫字段我想搜索一下:
User.username
Name.first_name
Address.line1
Phone.number
Email.email_address
我也有在PHP下列變量(帶有示例數據)搜索:
$username = "john123";
$name = "john";
$address = "10 fake street";
$phone = "23456789";
$email = "[email protected]";
假設有0完整的比賽,我將如何編寫一個查詢其可以看到部分匹配,然後由數量返回有序結果火柴?
例如,使用我的示例數據我可能希望看到的結果是這個樣子,
username | name | address | phone | email | matches
----------------------------------------------------------------------------
john123 | john | 12 new street | 23456789 | [email protected] | 4
tim123 | tim | 10 fake street | 23456789 | [email protected] | 2
只是要注意,我不是在尋找一個通配符搜索這裏。我想返回具有完全匹配的結果,但不一定是使用所有DB字段的完全匹配。並且還希望通過匹配次數排列結果的優先級。
我可以通過將每個查詢作爲單獨的查詢運行,將其加載到PHP數組中,然後計算在大多數數組中找到哪些ID,從而實現它的效率非常低。然而,運行這個數據庫的數據庫每個表有數百萬條記錄,所以這根本不可行。
我在這些場景中使用了[布爾全文搜索](http://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html)。 – haitran
您可以將字符串分解爲字符,並使用mysql中的類似語句匹配一次字符。 –