Regexp MySql - только строки, содержащие два слова - PullRequest
0 голосов
/ 19 ноября 2009

У меня есть таблица с рядами строк. Я хотел бы найти те строки, которые состоят только из два слова.

Я пробовал несколько способов с [[: space:]] и т. Д., Но MySQL возвращался три, четыре строки слов также

Ответы [ 3 ]

2 голосов
/ 19 ноября 2009

попробуйте это:

select * from yourTable WHERE field REGEXP('^[[:alnum:]]+[[:blank:]]+[[:alnum:]]+$');

подробнее в ссылке: http://dev.mysql.com/doc/refman/5.1/en/regexp.html

1 голос
/ 19 ноября 2009

^\w+\s\w+$ должно преуспеть.

Примечание; В последние дни я чаще сталкиваюсь с тем, что почти никто не использует ^$ -операторы.

Они абсолютно необходимы, если вы хотите сказать, начинается или заканчивается ли строка чем-либо или хотите точно соответствовать строке, слово в слово, как вы. «Нормальные» строки, как вы использовали (я предполагаю, что вы использовали что-то вроде \w[:space]\w match в строке , что означает, что они также совпадают, если условие истинно в любом месте строки !

Имейте это в виду, и Regex будет хорошо служить вам:)

0 голосов
/ 19 ноября 2009
 REGEXP ('^[a-z0-9]*[[:space:]][a-z0-9]*$')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...