2015-08-28 3 views
1

Привет, я хочу найти строку, которая сильно равна таблице mysql. Пусть я следующие данные:Поиск строк с использованием mysql regexp

name  skills 
John  HTML^&*HTML5^&*CSS^&*CSS3 
Roman  HTML^&*CSS 
Anrold CSS^&*CSS3 

Здесь ^&* используется для анализа содержимого.
Как сделать regexp поиск в mysql, чтобы при поиске HTML5 тогда он возвращает только имя John, но не john and roman. Я попробовал это, используя like, но это не сработало.

select * from table where skills regexp [HTML] 

Но я бы тоже вернулся HTML5. Но он должен возвращать только строки, имеющие HTML.

Может быть, ответ будет нормализовать ваш стол. Так что это не было бы решением для меня, потому что выше это просто пример. Он может содержать любые другие поля с параметрами, так как мой проект имеет дело с конструктором форм.

+0

Попробуйте 'выбрать * из таблицы, где навыки регулярное выражение«[[: <:]]HTML[[:>:]] '. Или 'select * from table where skills regexp '[[: <:]]HTML5[[:>:]]'' –

+1

Возможно, если вы объясните, как вы используете «как», это даст нам подсказку, почему «не нравится» вам работать. Потому что он должен ... – Amarnasan

+1

@ user254153: Возможно, вам нужно «SELECT * FROM table WHERE skills NOT LIKE«% HTML5% », если вы хотите обратное и получите записи« Roman »и« Arnold ». –

ответ

0

Вы можете просто добиться этого с помощью like оператора в Mysql как

SELECT * FROM `table` WHERE skills LIKE '%HTML5%' 

и противоположный вариант LIKE является NOT LIKE в

SELECT * FROM `table` WHERE skills NOT LIKE '%HTML5%' 
+0

Спасибо. Это сработало, но как я могу сделать это не так. Я имею в виду не равный. – user254153

+0

@ пользователь254153. Я обновил свой ответ –

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