Укороченный запрос REGEXP для MySQL

0

Я хочу выполнить запрос MySQL, чтобы получить следующий эффект:

table_column [varchar]
-----------------------
   1|5|7
      25
   55|12
       5
     3&5
    5|11

Я хочу надежный способ получить все значения, где 5 - полное значение.

Итак, например, если я делаю запрос REGEXP для числа 5 в верхней таблице, я бы хотел получить все строки, кроме, содержащие "25" и "55 | 12" .

Это лучшее, что я придумал до сих пор:

[^[:digit:]]5[^[:digit:]] | [^[:digit:]]5 | 5[^[:digit:]] | ^5$

есть более короткий путь?

Спасибо.

  • 1
    Решение «границы слов» добилось цели. Я не знаю, почему этот парень удалил свой пост. И это не \ b5 \ b, как он сказал, а [[: <:]] 5 [[:>:]], но все равно большое спасибо за идею, она сработала.
  • 0
    Это был бы я; Я удалил его, потому что изначально забыл, что в MySQL не было \b , и я не помню, имел ли он возможность ограничения слов. Я восстановил его и обновил с соответствующими отметками. ;)
Показать ещё 1 комментарий
Теги:

2 ответа

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

Попробуйте использовать границы слов:

[[:<:]]5[[:>:]] 
-2
^.*[^[:digit:]]*5[^[:digit:]]*.*$
  • 1
    Не сработает Например, это выражение соответствует 55 (имейте в виду, что оператор * может соответствовать 0 элемента ...).
  • 0
    захватить центральный 5 и все работает ..

Ещё вопросы

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