У меня есть таблица как это:
UID(int) NUMBERS(blob)
----------------------
1 1,13,15,20
2 3,10,15,20
3 3,15
И я хотел бы протестировать, если 3 и 15 находятся в номерах вызываемого абонента блоба. И видьте, что ПОДОБНОЕ %% не может использоваться
Только строка с идентификатором 2 и тремя scoulb быть выбранным...
Этот также работает:
SELECT * FROM table WHERE 3 IN (NUMBERS) AND 15 IN (NUMBERS)
с помощью IN будет искать строку, разделенную запятыми, например. эти два
WHERE banana IN ('apple', 'banana', 'coconut')
WHERE 3 IN (2,3,6,8,90)
Не самое красивое решение, но оно работает:
select
UID
from
YOUR_TABLE
where
find_in_set('3', cast(NUMBERS as char)) > 0
and
find_in_set('15', cast(NUMBERS as char)) > 0
Обратите внимание, что это сравнение строк , поэтому вам может потребоваться преобразование входные параметры также в char.