Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как правильно оформить запрос?

Как правильно оформить запрос?


     16.02.2015    Все вопросы » MySQL    1867

вопрос
Всем здравствуйте. Я делаю запрос, но он не правильно работает.
Вся проблема связана с полем categorues и cats_id
categories - это как в DLE список категорий через запятую например 1,2,3 или 2,1,13 ну любое в общем
cats_id - это ид той категории по которой делается выборка...

SELECT post.categories,post.title,cats.name, login, post_id, author_id, short_post, post_date FROM post 
LEFT JOIN userinfo ON post.author_id=userinfo.id
LEFT JOIN cats ON cats.name='sport'
WHERE not_publish=0 AND post.categories LIKE CONCAT('%', cats.cats_id, '%')


Вот такой запрос...
Проблема в
post.categories LIKE CONCAT('%', cats.cats_id, '%')

если например в поле categories вписано 3,13 и нужно найти 1, то он все равно считает что все круто...
Как поправить?
Спасибо вам заранее!

Ответил: ychelovek


SELECT post.categories, post.title, cats.name, login, post_id, author_id, short_post, post_date
FROM post
LEFT JOIN userinfo ON post.author_id = userinfo.id
LEFT JOIN cats ON cats.name =  'sport'
WHERE not_publish =0
AND cats.cats_id REGEXP  '[[:<:]](' + post.categories +  ')[[:>:]]'

3 комментария

lutskboy
Эксперт

lutskboy - 17 февраля 2015 12:06 -

А кто ж по LIKE ищет
Посмотрите как в дле ето реализовано
Там post.categories REGEXP '[[:<:]](3|13)[[:>:]]'

ychelovek
Юзер

ychelovek - 17 февраля 2015 14:12 -

Все работает)))

ychelovek
Юзер

ychelovek - 17 февраля 2015 16:02 -

SELECT post.categories, post.title, cats.name, login, post_id, author_id, short_post, post_date
FROM post
LEFT JOIN userinfo ON post.author_id = userinfo.id
LEFT JOIN cats ON cats.name =  'sport'
WHERE not_publish =0
AND post.categories REGEXP CONCAT(  ', ?', cats.cats_id,  '|', cats.cats_id,  ',' ) OR post.categories=cats.cats_id

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 03.08.2011 AndreY_ZO_o  MySQL
 28.03.2014 i_loves_ac_dc  MySQL
 20.08.2014 Pringles  MySQL
наверх