Совпадение тегов в MYSQL - PullRequest
       4

Совпадение тегов в MYSQL

0 голосов
/ 23 августа 2011

Я хотел бы узнать, как вы можете искать в тегах PS У меня есть таблица, где есть столбец для тегов "бар, бармены, пить".

В поиске, например, люди ищут барменов пить, каксоответствует ли я, я пробовал LIKE, INSTR (), но не повезло, дело в том, что содержимое столбца тегов не имеет пробелов между ними.Это как «бар, бармен, напиток», а не «бар, бармен, напиток»

Любая помощь ..?

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Почему бы не иметь отдельную таблицу tags с

id int(11) auto_increment
post_id int(11)
tag text

Затем для каждой метки есть одна строка tags.

2 голосов
/ 23 августа 2011

Это проблема, свойственная данному типу дизайна.Если не считать того, как вы храните данные, вам придется выполнить такой поиск:

SELECT * FROM my_table WHERE CONCAT(',', tags, ',') LIKE '%,bar,%';

РЕДАКТИРОВАТЬ: На самом деле, я просто дважды проверил, и вы можете использовать regexp следующим образом:

SELECT * FROM my_table WHERE tags REGEXP '[[:<:]]bar[[:>:]]';

Что должно быть немного быстрее.

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