Архитектура MySQL таблицы: строки или числа
Мне кажется у вас неправильно организована структура данных.
Могу предложить хранить статусы в отдельной табличке (cat_statuses). +--------------------------------------+
|   id   |    cat_id    |    status    | 
+--------------------------------------+
Где status  - TINYINT
cat_id - INT
Далее просто использовать RIGHT JOIN:SELECT * FROM `cat_statuses` as cs 
RIGHT JOIN `test_b` as tb ON (as.cat_id = tb.services)
WHERE cs.cat_id=4;
Пусть в вашей таблице объектов есть поле objectId - идентификатор объекта. Создадим дополнительную таблицу, связанную по полю objectId с таблицей объектов. Таблица содержит поля номера сервиса serviceNum и его статуса serviceStatus.CREATE TABLE `service_states` 
  `objectId` BIGINT NOT NULL DEFAULT '0',
  `serviceNum` INT NOT NULL DEFAULT '0',
  `serviceState` tinyint(1) DEFAULT '0',
  PRIMARY KEY (`objectId`,`serviceNum`),
  KEY `byServiceState` (`serviceState`),
  KEY `byServiceNum` (`serviceNum`))
ENGINE=InnoDB DEFAULT CHARSET=utf8';
Запрос всех объектов, аналогичный вашему, будет выглядеть какSELECT * FROM `test_b` as tb
RIGHT JOIN `service_states` as ss USING(objectId)
WHERE ss.serviceNum = 3 AND ss.serviceState = 2;