PHP MYSQL: поиск по запросу - PullRequest
       1

PHP MYSQL: поиск по запросу

0 голосов
/ 19 февраля 2012

Мне нужно отправить запрос для поиска сообщений с определенным тегом.Ячейка в базе данных написана так: «забавная технология хороша», поэтому каждое слово описывает тег.поэтому я написал этот код, чтобы получить сообщения с тегом "funny".

'SELECT * FROM `posts` WHERE `post_tag` = "funny" ORDER BY `post_id` DESC LIMIT 50'

к сожалению, это не дает мне никакого результата.в чем здесь проблема?

Ответы [ 4 ]

1 голос
/ 19 февраля 2012

Запрос WHERE post_tag LIKE "%fun%" также будет соответствовать "смешному", "несуществующему" и т. Д. Но вам повезло, потому что MySQL также поддерживает регулярные выражения в стиле perl и вы можете сказать

WHERE post_tag RLIKE "\bfun\b"

(Убедитесь, что движок sql видит обратную косую черту).Это будет соответствовать только «веселье» как полное слово.

1 голос
/ 19 февраля 2012

Используйте ключевое слово LIKE или сохраняйте ваши теги в виде 1-тега на запись.

 SELECT * FROM `posts` WHERE `post_tag` LIKE "%funny%" ORDER BY `post_id` DESC LIMIT 50

Однако при этом будут найдены теги, в которые включены другие теги, поэтому ищитеjava "также найдет" javascript ",

0 голосов
/ 19 февраля 2012

'SELECT * FROM `posts` WHERE `post_tag` LIKE "%funny%" ORDER BY `post_id` DESC LIMIT 50'

//OR to get tags starting with funny
'SELECT * FROM `posts` WHERE `post_tag` LIKE "funny%" ORDER BY `post_id` DESC LIMIT 50'

Ссылка: НРАВИТСЯ

0 голосов
/ 19 февраля 2012

Попробуйте это.

SELECT * FROM `posts` WHERE `post_tag` LIKE  "%funny%" ORDER BY `post_id` DESC LIMIT 50'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...