我有一个mysql函数function1(n AS varchar)
,它返回一些逗号分隔的字符串,如str1, str2
。
我可以触发像
这样的选择语句Select function1("ABC") from dual;
我想在comlumn1
包含str1
和column2
包含str2
的表格中插入此函数的输出,我可以通过调用function1("ABC")
2来执行此操作时间并用逗号分割输出并将每个部分存储在特定列中。但有没有办法只通过调用function1
一次就可以向表中插入值。
答案 0 :(得分:2)
我认为你可以做到:
UPDATE table_name t
JOIN (
SELECT function1("ABC") val
/* FROM dual /* Not sure if you need this */
) f
SET t.column1 = SUBSTRING_INDEX(f.val,', ', 1),
t.column2 = SUBSTRING_INDEX(f.val,', ',-1)
/* WHERE ... */
非常确定n#39; ll只会调用该函数一次。