MySQL Regex в Где - PullRequest
       3

MySQL Regex в Где

1 голос
/ 02 апреля 2012

Поиск продуктов с названиями «^ wall $», «\ swall \ s», «^ wall» или «wall $». Но он не должен иметь таких результатов, как «обои» или «чудо стены»

SELECT * 
FROM `products` 
WHERE (products.name REGEXP 'wall?[:space]')  
ORDER BY products.updated_at DESC

Пока что выше obviously не работает. Какой должен быть правильный способ сделать это.

Обновлены спецификации для более четкого объяснения.

Ответы [ 3 ]

5 голосов
/ 02 апреля 2012
SELECT * 
FROM `products` 
WHERE (products.name REGEXP '[[:<:]]wall[[:>:]]')  
ORDER BY products.updated_at DESC
2 голосов
/ 02 апреля 2012

Можете ли вы попробовать это REGEXP '[[:<:]]wall[[:>:]]'

2 голосов
/ 02 апреля 2012

используйте TRIM (products.name) = 'wall' вместо регулярного выражения ...

после обновления вопроса используйте mysql эквивалент \bwall\bрегулярное выражение (границы слов):

'[[:<:]]word[[:>:]]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...