簡體   English   中英

帶有OR和Brackets的MySQL SELECT查詢不起作用

[英]MySQL SELECT query with OR and Brackets not working

嗨我有一個MySQL Select查詢如下。

SELECT * 
FROM request
WHERE user_id=$user_id 
   OR vendor=$user_id
   OR (status='' AND services IN ( $service_arr )) 
ORDER BY id DESC

但是這個查詢沒有按預期工作。 我的OR條件被忽略,只有當括號內的條件為真時,此查詢才會獲取數據。 這意味着它只獲取列名稱services具有$service_arr存在的項目之一的那些行。

謝謝

這個例子很可能對你有幫助

SELECT customer_id,first_name, last_name 
FROM customers 
WHERE (last_name = 'atiq')
   OR (last_name = 'hamza' AND state = 'attock')
   OR (last_name = 'usman' AND status = 'Active' AND state = 'islamabad');

我嘗試用上面的表定義創建一個SQL提琴,加載了示例數據並在SQL之上進行了測試。 它似乎工作正常。

http://sqlfiddle.com/#!9/282e9f/2

CREATE TABLE IF NOT EXISTS `request` (
  `user_id` int(6) unsigned NOT NULL,
  `vendor` int(3) unsigned NOT NULL,
  `status` varchar(200) NOT NULL,
  `services` varchar(200) NOT NULL

) DEFAULT CHARSET=utf8;
INSERT INTO `request` (`user_id`, `vendor`, `status`, `services`) VALUES
  ('1', '1', 'cut','fit'),
   ('2', '1', 'cut','fit'), ('3', '3', '','pick'),
    ('4', '5', 'next','sample');
SELECT * 
FROM request
WHERE user_id=1
   OR vendor=1
   OR (status='' AND services IN ('pick'));

結果集

user_id vendor  status  services
1        1       cut         fit
2        1       cut         fit
3        3                   pick

我發現你的SQL沒有任何問題,你能與數據共享樣本嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM