如何在MySQL中模拟数组变量?

这似乎是MySQL没有数组变量。我应该怎么用呢?


似乎提出了两种选择:set-type标量表和临时表。我链接的问题暗示了前者。但是,使用这些变量而不是数组变量是一种好习惯吗?或者,如果我使用集合,基于集合的成语等效于foreach什么?


慕沐林林
浏览 3092回答 3
3回答

DIEA

好吧,我一直在使用临时表而不是数组变量。不是最大的解决方案,但它可以工作。请注意,您不需要正式定义它们的字段,只需使用SELECT创建它们:CREATE TEMPORARY TABLE IF NOT EXISTS my_temp_tableSELECT first_name FROM people WHERE last_name = 'Smith';

临摹微笑

您可以使用WHILE循环在MySQL中实现:SET @myArrayOfValue = '2,5,2,23,6,';WHILE (LOCATE(',', @myArrayOfValue) > 0)DO    SET @value = ELT(1, @myArrayOfValue);    SET @myArrayOfValue= SUBSTRING(@myArrayOfValue, LOCATE(',',@myArrayOfValue) + 1);    INSERT INTO `EXEMPLE` VALUES(@value, 'hello');END WHILE;编辑:或者,您可以使用UNION ALL:INSERT INTO `EXEMPLE`( `value`, `message`)( SELECT 2 AS `value`, 'hello' AS `message` UNION ALL SELECT 5 AS `value`, 'hello' AS `message` UNION ALL SELECT 2 AS `value`, 'hello' AS `message` UNION ALL ...);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL