Я попытался создать скрипту 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, можете поделиться примером с данными?