Запрос с in

konst55

Mysql, как известно, не может возвращать из пользовательских функций более одного значения. Поэтому пытался имитировать такую функциональность возвращая из функции строку значений разделенных запятой, например 1,2,3чтобы потом заюзать запрос вида select * from sometable where id in somefunction(n), однако такой запрос возвращает лишь одну запись для первого айдишника.Есть идеи как сделать подобное?
5 ответов

konst55

konst55,никак. Только костыли из временных таблиц...


konst55

konst55,Может правильнее так: prepare ... CONCAT("select * from table1 where field1 IN(", somefunction(тра-ля-ля), ")" ); ... execute;если результат строка?


konst55

Arhat109, только вот если этот селект будет внутри ещё одной функции, то динамическим склем пользоваться уже нельзя...


konst55

tanglir,Оно понятно, что универсального рецепта нет... вы бы мне со следующей (как раз ниже стоит) темкой подмогли... вроде ПОКА работает... но ведь причина так и НЕ найдена! Ужо всю голову сломал... ;)


konst55

Есть идеи как сделать подобное?Есть. Изучи как испробовать позволив и используй из вместо IN. Exist, not exist...