Задавайте вопросы, мы ответим
Вы не зашли.
собственно я не так давно за XP в MYSQL взялся, отсюда вопрос ...
надо из приложения передать в процедуру список значение для select ... where id in()
я так понимаю передать из приложения проще всего строкой ...?
далее разобрать строку и поскольку кол-во элементов неизвестно, запихать их во временную таблицу и вместо in использовать выборку из нее в условии
а вот разобрать строку параметров как проще ? что-то глядя на строкоые функции простого способа не вижу, я что-то проглядел ? слепить список можно concat_ws(), а вот разобрать его чтоб запихать во временную таблицу ...
только поштучно выискивая запятые через locate()?
Неактивен
Да, встроенной функции для разбиения строки в MySQL нет.
Вероятно, это объясняется подталкиванием к вынесению списков в отдельные таблицы (или ENUM-колонки) вместо хранения их в строке через запятую.
Неактивен
а, вот покопался на форуме ...
что-то типа
-> SET @var = CONCAT('INSERT INTO test1 VALUES ', ins_val);
-> PREPARE zxc FROM @var;
-> EXECUTE zxc;
похоже мне подойдет, ins_val как список сразу из приложения текстом передам, просто хочется обойтись в приложении процедурами
сначала была еще мысль в приложении в классе работы с mysql сделать функцию которая временную таблицу список будет строить, а вторым шагом уже процедуру вызывать которая ее юзать будет. по сути если использовать стандартное имя временной таблицы, то так можно все подобные запросы и реализовать наверное. поскольку в приложении spjds будт последовательны конфликта имен таблиц не будет, да и собственно там все формы-окна отдельные соединения используют.
но вариант выше красивее, лишних танцев с бубном не будет в приложении
Неактивен