Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > SELECT NOT IN LIKE в хранимых процедурах


Автор: In0stRAnez 5.3.2017, 00:20
Всем привет!

Столкнулся с одной особенностью хранимок, пока не знаю что это баг или...

Создаю хранимку, процедуру, входящий varchar(15) tag

Код

SELECT `id`, `title`, `image`, `tag` FROM `posts` WHERE `id` NOT IN (SELECT `id` FROM (SELECT `id` FROM `posts` WHERE `tag` LIKE CONCAT('%',@tag,'%') ORDER BY `new_date` DESC LIMIT 4) popular)


не срабатывает, - выводит записи содержащие "тег"

Код

SELECT `id`, `title`, `image`, `tag` FROM `posts` WHERE `id` NOT IN (SELECT `id` FROM (SELECT `id` FROM `posts` WHERE `tag` LIKE '%гардероб%' ORDER BY `new_date` DESC LIMIT 4) popular)


работает нормально, 4 записи содержащие тег (тег) не выводятся, выводится все остальное..

но мне нужно динамично менять тег..

что делать кто подскажет? может кто встречался с такой проблемой?

Кажется как будто не срабатывает конкат.

Тестировал на разных версиях myphpadmin, а так же выводил у себя на ресурсе результаты... итог один


Спасибо!

Автор: Akina 5.3.2017, 11:13
Где и когда присваивается значение переменной @tag?

Автор: In0stRAnez 5.3.2017, 15:18
К примеру в myphpadmin в отладке (SQL)

Код

SET @tag='тег'; CALL `get_all_posts`(@tag);

Автор: Akina 5.3.2017, 20:08
In0stRAnez, Если Вы и дальше будете выдавать информацию по крохам, будете ждать ответа до второго пришествия.
Полный код ХП, модельный DDL+DML таблицы, полный код вызова, результат (полученный и желаемый) на ЭТИХ данных - в студию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)