Переменная массива в MySQL - PullRequest
       1

Переменная массива в MySQL

6 голосов
/ 16 сентября 2009

Есть ли в сценарии MySQL способ объявить массив (или любую коллекцию) и выполнить цикл по нему, чтобы что-то делать?

Например,

SET @myArrayOfValue=[2,5,2,23,6]


for each @value in @myArrayOfValue
   INSERT INTO EXEMPLE VALUES(@value, 'hello');
end for each

Ответы [ 2 ]

3 голосов
/ 16 сентября 2009

Нет, SQL не поддерживает синтаксис FOR EACH / etc. Самое близкое, что вы получили бы, это использовать курсоры. Кроме того, в SQL нет синтаксиса массива - вам придется использовать:

SELECT 2 FROM DUAL
UNION ALL
SELECT 34 FROM DUAL
UNION ALL 
SELECT 24 FROM DUAL

... чтобы создать ваш эквивалентный "массив значений" в SQL.

Сценарии SQL будут содержать отдельные операторы INSERT. Вы будете смотреть на использование PHP / Java / и т.д. использовать синтаксис FOR loop-esque, как показано в вашем примере.

0 голосов
/ 16 сентября 2009

Не могли бы вы использовать что-то вроде MySQL SET ? вместо циклического перебора вы можете сохранить значения в SET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...