MySQL:如何从逗号分隔列表中获取for循环?

时间:2013-12-27 17:17:32

标签: mysql variables for-loop

我想创建sqlstring,准备stmt,为一长串整数值执行stmt

for i in (6500,6700,15781,..,79865)
  for j in string values ("TT","FF","DD","RH")
     long .sql script;
  end for j
end for i

在Informix SQL中,它就像:

FOR i IN (1 TO 20 STEP 5, 20 to 1 STEP -5, 1,2,3,4,5)
. . .
END FOR:

请参阅http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqlt.doc/sqltmst275.htm

我是mysql的新手,语法与我习惯的不同。 对我来说,创建一个程序似乎有点奇怪。

1 个答案:

答案 0 :(得分:1)

MySQL没有数组类型,你的整数值列表是一个文字数组,所以没有办法在MySQL本地表示该列表,或者确实将它用作循环控件。

您基本上有两种解决方法:

  • 要么在应用程序代码中执行此操作,您将很乐意使用与您作为示例相似的语法
  • ...或者将问题表达为两个表之间的查询(例如CROSS JOIN),每个表包含文字数组或列表中的数据。