2015-10-22 2 views
0

У меня вопрос о регулярном выражении, которое хочет использовать MySQL/phpMyAdmin. Это следующее:Регулярные выражения в Mysql/phpmyadmin

^ [^ 0-9] $ 

Как это не возвращать никакого кортежа в таблице, содержащую номер, но проблема в том, что возвращает кортеж содержит число. Полное заявление:

SELECT * FROM person WHERE name REGEXP "^ [^ 0-9] $"; 

Так что я не знаю, в чем проблема. Поскольку у меня есть два кортежа, которые имеют настоящие имена и «ложный» кортеж, это чистые числа и возвращает это кортежное предложение с числами.

Примечание: столбец «имя» в таблице «человек» является varchar.

+0

Попробуйте добавить + после закрывающей квадратной скобки I.e '[^ 0-9] +' –

ответ

3

Похоже, вы пытаетесь вернуть столбцы, у которых нет номеров, это правильно?

Если это так, я думаю, что

SELECT * FROM person WHERE name not REGEXP '[0-9]' 

будет самый простой подход.

В настоящее время ваше регулярное выражение ищет столбец с ведущим пробелом, не числом или пробелом, а затем пробел до конца.

Демо: http://sqlfiddle.com/#!9/6b047/2

+0

Спасибо! Это служило мне. –

0
SELECT * FROM person WHERE name REGEXP '^[^0-9]+$' 

Вы были близки. See fiddle.

+0

Спасибо! Он также служил. –

Смежные вопросы