Имя: Пароль:
IT
 
Знатоки mysql, как передать список в EXECUTE?
0 Asmody
 
17.02.12
17:57
Пусть есть запрос
SELECT c2 FROM t1 WHERE c1 IN (1,2,3,4,5)

надо его выполнить через PREPARE. Пишу:
PREPARE `123` FROM 'SELECT c2 FROM t1 WHERE c1 IN (?)'
SET @var=<вот как тут написать?>
EXECUTE `123` USING @var
1 Йохохо
 
17.02.12
18:27
PREPARE s123 FROM CONCAT('SELECT c2 FROM t1 WHERE c1 IN ', @str123);
EXECUTE s123;
2 Asmody
 
17.02.12
19:01
(1) мдя… не катит. WHERE может быть сложным, разбирать его и искать, где там IN, а где нет — чета нет желания
3 aleks-id
 
17.02.12
19:19
SET @var='1,2,3,4,5' ?
4 Asmody
 
17.02.12
19:26
(3) это строка получится
5 aleks-id
 
17.02.12
19:41
CREATE TABLE var (a INT NOT NULL);
INSERT INTO var1 VALUES (1), (2), (3), (4), (5);
SET @var= 'var1';
6 aleks-id
 
17.02.12
19:42
+(5) в первой строке опечатался. var1
7 smaharbA
 
17.02.12
22:35
два раза ексек еще не предлагали ?
8 Asmody
 
17.02.12
22:52
(7) что екзекать?
9 smaharbA
 
17.02.12
23:03
(8) пока не скажу, нету желания мускулить (хотя все сайты иже с ним)
ответ - макроподстановки ?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший