Подскажите, как исключить из запроса значения результатов по значению test, data которые не находятся в диапазоне, например (4, 9) в таблице данных
id name data
1 test1 3
1 res sdf
1 tost asd
1 test2 6
2 test8 12
Необходимо, чтобы id 1 был исключен из запроса, так как 6 попадает в диапазон. результат будет только id 2
Действительно, странно, что диапазон нужно искать в строках... Как вариант, можно взять все ид, которые не подходят, и исключить их:
SELECT * FROM table1
WHERE id NOT IN
(SELECT id FROM table1 WHERE CASE WHEN (data < 4 OR data > 9) THEN 0 ELSE -1 END = -1 AND name LIKE '%test%')
Дописал про "test", если правильно понял. То есть в name есть совпадение с строкой test и диапазон data [4,9], такие ид исключить.
http://sqlfiddle.com/#!9/3a0d80/3
SELECT *
FROM table_name
WHERE name LIKE 'test%' AND id NOT IN
(SELECT id FROM table_name WHERE name LIKE 'test%' AND (data BETWEEN 4 AND 9)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей