SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.02.2012 01:55:26

dos32
Участник
Зарегистрирован: 06.02.2012
Сообщений: 13

передать в ХП список для IN

собственно я не так давно за XP в MYSQL взялся, отсюда вопрос ...
надо из приложения передать в процедуру список значение для select ... where id in()

я так понимаю передать из приложения проще всего строкой ...?

далее разобрать строку и поскольку кол-во элементов неизвестно, запихать их во временную таблицу и вместо in использовать выборку из нее в условии

а вот разобрать строку параметров как проще ? что-то глядя на строкоые функции простого способа не вижу, я что-то проглядел ? слепить список можно concat_ws(), а вот разобрать его чтоб запихать во временную  таблицу ...
только поштучно выискивая запятые через locate()?

Неактивен

 

#2 06.02.2012 02:22:53

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: передать в ХП список для IN

Да, встроенной функции для разбиения строки в MySQL нет.
Вероятно, это объясняется подталкиванием к вынесению списков в отдельные таблицы (или ENUM-колонки) вместо хранения их в строке через запятую.

Неактивен

 

#3 06.02.2012 02:34:56

dos32
Участник
Зарегистрирован: 06.02.2012
Сообщений: 13

Re: передать в ХП список для IN

а, вот покопался на форуме ...
что-то типа
    -> SET @var = CONCAT('INSERT INTO test1 VALUES ', ins_val);
    -> PREPARE zxc FROM @var;
    -> EXECUTE zxc;
похоже мне подойдет,  ins_val как список сразу из приложения текстом передам, просто хочется обойтись в приложении процедурами

сначала была еще мысль в приложении в классе работы с mysql сделать функцию которая временную таблицу список будет строить, а вторым шагом уже процедуру вызывать которая ее юзать будет. по сути если использовать стандартное имя временной таблицы, то так можно все подобные запросы и реализовать наверное. поскольку в приложении spjds будт последовательны конфликта имен таблиц не будет, да и собственно там все формы-окна отдельные соединения используют. 
но вариант выше красивее, лишних танцев с бубном не будет в приложении

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson