【发布时间】:2018-10-22 07:44:21
【问题描述】:
以下 3 个查询我想在 mysql 中作为单个查询运行,我会将这个结果传递给 Pentaho 查询组件以绘制一些图表。
SET @input = select "22:4,33:4" from dual;
SET @count := 0;
select SUBSTRING_INDEX(@input, ' ', (@count) * 2), ' ', -1) as xyz, som_cnt as count from abc;
示例字符串的长度未知 (22:4,33:4,96:6....)
expected output
xyz count
----------------
22 4
33 4
96 6
参考 - Mysql Query to Separate space delimited String Convert into 2 columns
- 设置查询计数=0,如果我可以在选择查询中合并此 SET 查询也可以。
- 选择查询使用计数对输入字符串进行一些解析 - 仅添加示例子字符串。 (此处添加解析逻辑)
我想要下面显示的 mysql 链接中的相同功能 我尝试了这个解决方案,但我不确定 set_config 在 mysql 中是否有效。 SET and SELECT within a single query?
或在 Pentaho 的 Query 组件中运行存储过程的任何方法。
【问题讨论】:
-
请给出示例数据和预期输出。问题有点不清楚。您很可能需要使用派生表(定义会话变量),然后您可以执行
cross join -
@MadhurBhaiya 我已经更新了我的问题和预期的输出,如果您知道在单个查询中执行此任务的更好解决方案,随时欢迎:)
-
这个值
"22:4,33:4"是来自某个表,还是您的输入? -
-
试试这个:
select SUBSTRING_INDEX(@input, ' ', (@count) * 2), ' ', -1) as xyz, som_cnt as count from abc cross join (select @count := 0) AS user_init