mysql проверяют, находятся ли числа в списке разделенных запятой значений

У меня есть таблица как это:

UID(int) NUMBERS(blob)
----------------------
1        1,13,15,20
2        3,10,15,20
3        3,15

И я хотел бы протестировать, если 3 и 15 находятся в номерах вызываемого абонента блоба. И видьте, что ПОДОБНОЕ %% не может использоваться

Только строка с идентификатором 2 и тремя scoulb быть выбранным...

29
задан Tillebeck 20 April 2010 в 09:43
поделиться

2 ответа

Этот также работает:

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)

Информация, найденная на этой странице:

42
ответ дан 28 November 2019 в 00:40
поделиться

Не самое красивое решение, но оно работает:

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.

35
ответ дан 28 November 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: