我有一個數據庫應用程序,我正在爲汽車產品工作。MySQL在哪裏和或
我想退貨產品結果相匹配的條件:
- 「製作」必須匹配
- 的「類別」必須匹配
- 但是當它到達的「選項」,它可以是或者全部。我希望它返回有選擇
我使用一個或所有的期權產品:
SELECT *
FROM `PRODUCTS`
WHERE `MAKE` LIKE '%CHEV%'
AND `CATEGORY` LIKE '%BUMPERS%'
AND `OPTIONS` LIKE '%TOW HOOKS%'
OR `OPTIONS` LIKE '%LIGHT MOUNT HOLES%'
當我使用這個它的工作原理,但來自不同品牌,以及它產生的結果。所以它是從福特回來的產品說,以及...我不希望這一點。
我希望MAKE和CATEGORY是嚴格的(它們必須匹配),但OPTIONS可以是一個或兩個 - 或者甚至可以是三個或四個不同的選項 - 但至少有一個選項必須匹配。
OPTIONS
提交的是一個由管道字符分隔的字符串,即LIGHT MOUNT HOLES|TOW HOOKS|FOUR DOOR
,我不想更改它。
如果我使用上面的查詢與搜索只是一個選項:
AND `OPTIONS` LIKE '%TOW HOOKS%'" or just "AND `OPTIONS` LIKE '%LIGHT MOUNT HOLES%'
...它完美的作品。但是,如果我嘗試搜索多個選項,它會開始從不同的MAKES中帶回產品。
我也曾嘗試:
SELECT *
FROM `PRODUCTS`
WHERE `MAKE` LIKE '%CHEV%'
AND `CATEGORY` LIKE '%BUMPERS%'
OR `OPTIONS` LIKE '%TOW HOOKS%'
OR `OPTIONS` LIKE '%LIGHT MOUNT HOLES%'
並且有多個同樣的問題,使顯示出來。
非常感謝你的答覆。 我可以要求解釋嗎? 它是否像海報「Kolink」所說的關於數學運算順序? – 2012-02-27 03:59:14
@ user1005858,請參閱編輯。 – Isaac 2012-02-27 04:07:10
@ user1005858,剛剛更新了第二個查詢,如果你想放鬆選項匹配,就把它全部放在一起。 – Isaac 2012-02-27 04:12:03