0
我正在尋找mysql db中的正確查詢。讓我們看看我的表:mysql - 請以正確的正則表達式語法提出建議
用戶:
id | user_name | desc
--------------------------
1 | john | tall
2 | john | fat
3 | maria | pretty
項目:
id | item_name | color
--------------------------
1 | trousers | red
2 | shoes | blue
3 | shoes | red
我的搜索引擎搜索數據庫,選擇利用查詢結果:
SELECT i.item_name, i.color, u.user_name, u.desc
FROM users u, items i
WHERE u.id = i.id
AND item_name REGEXP $keywords
AND user_name REGEXP $keywords
變量$關鍵字是像這樣:
$keywords = explode(' ', $_POST['keywords']);
$keywords = implode('|', $keywords);
現在當$關鍵字='約翰褲'它工作得很好 - 我得到id = 1的用戶。沒關係。但是當我設置$ keywords ='john'時,它會返回空字符串。我甚至知道爲什麼 - 在item_name中沒有'john',所以我的AND條件返回false。問題是: 什麼是正確的regexp表達式返回user = 1 with $ keywords =「john trousers」,如果$ keyword ='john'得到兩行 - id = 1和id = 2?
在此先感謝。
那麼它肯定是有趣的方式來解決問題。不幸的是,列的整個值必須符合關鍵字的條件:(+1爲你我的朋友,但仍然在等待另一個更合適的解決方案:( – Kalreg