我需要搜索整個單詞不是他們使用SQL LIKE來匹配完整的單詞
$q = $_GET['q'];
SELECT * FROM table WHERE column LIKE '% $q %'
的一部分。例如,如果$q = mag
它不應該找雜誌 我已經試過了用戶發佈的解決方案,但它沒「科技工作
像正則表達式和CONCAT
PS:我的數據庫列是一個大的文本
我需要搜索整個單詞不是他們使用SQL LIKE來匹配完整的單詞
$q = $_GET['q'];
SELECT * FROM table WHERE column LIKE '% $q %'
的一部分。例如,如果$q = mag
它不應該找雜誌 我已經試過了用戶發佈的解決方案,但它沒「科技工作
像正則表達式和CONCAT
PS:我的數據庫列是一個大的文本
我不知道這是否會解決您的問題,或者你已經嘗試過,但給它一個嘗試, 查找單詞邊界具有以下REGEXP
SELECT * FROM table WHERE column RLIKE "[[:<:]]$q[[:>:]]";
它在我的查詢返回任何 –
,你可以做一個事情。你可以打印查詢,並直接在phpMyAdmin –
我沒有運行..它曾在第一 –
不要使用LIKE
...在這種情況下僅使用比較。事情是這樣的:
SELECT * FROM table WHERE column = '$q';
,OP想要那個'「富barbaz b AZ巴茲「'將爲'發現」「',而不是'」欄「',所以它不是平等 –
但用戶說,當'$ Q ='mag''然後抓取行包含'mag'而不是'magazine'。只是作爲'magazine'這個簡單的查詢會給輸出。 @AlmaDo ..可能是我誤會了...不知道 –
'$ q'我得到它從URL用戶在文本框寫整個單詞不是它的一部分@Butterfruit –
如果你的話用空格分開,然後加兩側空間:
SELECT *
FROM table
WHERE concat(' ', column, ' ') LIKE '% $q %';
MATCH()只適用於myiasm數據庫類型,雖然沒有 – Dave