Поиск по регулярному выражению SQL все кроме цифр?

SELECT * FROM `dle_post` WHERE `xfields` REGEXP 'number|123([^[:digit:]]|$)'

Делаю так, но все равно выводиться записи те у которых 12345 и так далее, как сделать чтобы он выводил только 123 у кого запись ?

Дальше может идти знак | или пустота.


Ответы (1 шт):

Автор решения: Alex R.

Знак | должен экранироваться \, так как является специальным символом, обозначающим альтернативы.

Если я правильно понял задачу, то выражение должно быть следующим.

SELECT 
  * 
FROM `dle_post` 
WHERE `xfields` REGEXP '^number\|123\|?$'

Добавил еще ^ для обозначения начала строки. ? - 0 или 1 совпадение.

→ Ссылка