我目前正在進行實時搜索,我需要能夠在兩列中找到部分名稱(我們需要分隔名和姓)。我個人希望保留命令短,但我已經能夠得到這個工作的唯一途徑是:多列名稱搜索MySQL
用戶搜索
John Doe
生成的SQL查詢
SELECT * FROM users WHERE
(first_name LIKE '%john%' OR last_name LIKE '%john%') AND
(last_name LIKE '%doe%' OR last_name LIKE '%doe%');
搜索字段是一個框,所以我做了一些簡單的空間分隔。大多數情況下,這不會超出三組條款,只是想知道是否有更好的方法來做到這一點。
注意: 我想能夠做部分匹配。所以,我應該能夠找到李四,如果我找「約翰待辦事項」
解決方案 隨着羅蘭的幫助下,我卻沒有拿出一個解決方案,張貼別人誰發現這一點。按照他的關於如何創建下面的指標說明,然後運行這個:
SELECT * FROM users WHERE
(MATCH(first,last) AGAINST ('+john* +do*' IN BOOLEAN MODE))
謝謝您的信任投票! – RolandoMySQLDBA 2011-02-28 16:50:14