MySQL Regexp для поиска номера CSV

0

Как вы находите число (например, "8" ) в строке CSV в поле MySQL без поиска чисел, которые содержат это число (например, "18" или "81" )?

Например:

  • csvString1 in somecolumn= 8,14,18
  • csvString2 in somecolumn= 4,5,8,13
  • csvString2 in somecolumn= 18,81,82,88

Мне нужно, чтобы # 1 и # 2 подошли true и # 3, придумали false. Как это сделать

SELECT * FROM sometable WHERE somecolumn REGEXP '(what here?)';

Теги:

1 ответ

3
Лучший ответ

использовать find_in_set

select find_in_set('8', '18,81,82,88');
--> zero

select find_in_set('8', '8,14,18');
--> 1

select find_in_set('8', '4,5,8,13');
--> 3

Итак,

select * from your_table
where find_in_set('8', your_col)<>0;

PS: нормализуйте свои данные, чтобы избежать будущей проблемы.

  • 0
    +1 способ лучше, чем регулярное выражение
  • 0
    то же, что не равно (не меньше и не больше)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню