我想在PHP中創建一個小腳本以從MySQL數據庫獲取數據。 在我的數據庫中,「公司」是一個名爲類別的專欄,用於存儲我公司的類別,例如「1 | 2」或「2」。在MySQL中搜索 - 分隔列
現在我想搜索「2」,我的數據庫將返回這兩個條目與「1 | 2」和「2」 - 但這是我的問題。 我試着用LIKE%等,但沒有任何工作,因爲我希望。
有沒有人可以幫助我與我的小PHP腳本?
我想在PHP中創建一個小腳本以從MySQL數據庫獲取數據。 在我的數據庫中,「公司」是一個名爲類別的專欄,用於存儲我公司的類別,例如「1 | 2」或「2」。在MySQL中搜索 - 分隔列
現在我想搜索「2」,我的數據庫將返回這兩個條目與「1 | 2」和「2」 - 但這是我的問題。 我試着用LIKE%等,但沒有任何工作,因爲我希望。
有沒有人可以幫助我與我的小PHP腳本?
SELECT * FROM cat_baza WHERE subsection = ".$row['id']." or subsection LIKE('%|".$row['id']."|%') or subsection LIKE('".$row['id']."|%') or subsection LIKE('%|".$row['id']."');
嘗試
SELECT * FROM table
WHERE category LIKE %2% AND NOT LIKE '%|%'
試試這個
SELECT * FROM table
WHERE category='2' OR category LIKE '%|2' OR category LIKE '2|%'
SELECT * FROM table
WHERE category REGEXP '.*2.*'
正則表達式應該工作
我相信這是一個壞主意來存儲你的方式類別。 如果您使用LIKE "%2"
或LIKE "%2%"
或LIKE "2"
聲明來獲得屬於類別「2」的compnaies,那麼您將收到具有類別的公司,例如, 21|12
。
從公司列表中取走類別會更好。並添加2個新表:類別(id,名稱)和company_category(id,compnay_id,category_id)。這是如何在RDMS中。 但是,如果你有重要的論點,爲什麼你這樣做 - 這是你交易。
在此我建議在另外|
-symbol包裝類別獲得|1|2|
或|1|3|23|
和使用LIKE "%|2|%"
聲明。
我希望這可以幫助你。
正確的做法是創建2個新表,當然。 – regilero
向我們展示您正在嘗試的查詢...使用LIKE'%2%'應該這樣做... – Brian
使用['RLIKE'](http://dev.mysql.com/doc/refman/5.0 /en/regexp.html) – diEcho
謝謝diEcho。 RLIKE解決了我的問題。 – JoernBernd