为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕沐林林 2019-10-17 10:53:52
这似乎是MySQL没有数组变量。我应该怎么用呢?似乎提出了两种选择:set-type标量表和临时表。我链接的问题暗示了前者。但是,使用这些变量而不是数组变量是一种好习惯吗?或者,如果我使用集合,基于集合的成语等效于foreach什么?
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

好吧,我一直在使用临时表而不是数组变量。不是最大的解决方案,但它可以工作。


请注意,您不需要正式定义它们的字段,只需使用SELECT创建它们:


CREATE TEMPORARY TABLE IF NOT EXISTS my_temp_table

SELECT first_name FROM people WHERE last_name = 'Smith';


查看完整回答
反对 回复 2019-10-17
?
临摹微笑

TA贡献1982条经验 获得超2个赞

您可以使用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

 ...

);


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 3086 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信