|
Знатоки 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) пока не скажу, нету желания мускулить (хотя все сайты иже с ним)
ответ - макроподстановки ?
|
|