Nastavujem premennú ako v mysql shell
mysql> set @nilesh := 330;
Query OK, 0 rows affected (0.00 sec)
čo funguje dobre, ale keď som sa pokúsil nastaviť nuplu na to,
mysql> set @nilesh := (330, 221);
ERROR 1241 (21000): Operand should contain 1 column(s)
Mám chybu, prosím, navrhnúť mi, ako inicializovať premennú s n-ticou pre mysql.
odpovede:
3 pre odpoveď č. 1Nemôžete to robiť takým spôsobom a nie je to veľmi jasné, prečo to chcete, ale môžete urobiť niečo podobné dynamické-sql cesta
mysql> nastaviť @ids = "1, 2"; Dotaz OK, 0 riadkovovplyvnené (0,00 s) mysql> set @sql = concat ("vyberte * z tabuľky1, kde id id (", @ids ")"); Dotaz OK, 0 ovplyvnených riadkov (0.00 sec) mysql> vyberte @sql; + + ----------------------------------------- | @sql | + + ----------------------------------------- | zvoľte * z tabuľky1, kde id v (1, 2) | + + ----------------------------------------- 1 riadok v súprave (0,00 sek) mysql> pripraviť stmt z @ sql; Dotaz OK, 0 ovplyvnených riadkov (0.00 sec) Vypracované vyhlásenie mysql> execute stmt; + ------ + ----------- + ------ + | id | col1 | col2 | + ------ + ----------- + ------ + | 1 | hodnota1 | 11 | | 2 | hodnota2 | 12 | + ------ + ----------- + ------ + 2 riadky v súbore (0,00 sek) mysql> deallocate pripraviť stmt; Dotaz OK, 0 ovplyvnených riadkov (0.00 sec)