我想在mariadb中使用变量、union语句和循环来构建查询。
下面有一个名为stock_items的表,列在下面
stock_list
===========================================
123123:A, 111111:B, 101010:C, 525252:D, ...我用了“union”这句话
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX (stock_items.stock_list,',',numbers.n),',',-1),':',1) stock_list FROM
(SELECT 1 n UNION ALL SELECT 2
UNION ALL SELECT 3 UNION ALL SELECT 4
UNION ALL SELECT 5 UNION ALL SELECT 6
UNION ALL SELECT 7 UNION ALL SELECT 8
UNION ALL SELECT 9 UNION ALL SELECT 10
) numbers
INNER JOIN stock_items ON CHAR_LENGTH (stock_items.stock_list) - CHAR_LENGTH (REPLACE(stock_items.stock_list, ',', '')) >= numbers.n-1 WHERE theme_idx = 14 ;像下面这样看
stock_list
==========
123123
==========
111111
==========
101010
========== ....我的问题在第一篇的stock_list专栏中。可能有随机数量的股票。(目前,正如您在我的查询中看到的那样,它有10个,但可以多于/小于10个)
因此,我希望使用用户定义的变量构建sql或过程,同时,使用union-all语句。
干杯
发布于 2020-05-13 04:34:57
在MariaDB中,
(SELECT 1 n UNION ALL SELECT 2
UNION ALL SELECT 3 UNION ALL SELECT 4
UNION ALL SELECT 5 UNION ALL SELECT 6
UNION ALL SELECT 7 UNION ALL SELECT 8
UNION ALL SELECT 9 UNION ALL SELECT 10
) numbers 能写
seq_1_to_10它既简单又快得多。
https://stackoverflow.com/questions/61492610
复制相似问题