[英]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.