select * from t1 limit 100
查出一百行,我这有这样一个2,7...,如何将2,7...不规律数据100条放到查询结果中新的一列里
补充1:程序中有一个列表记录这些数据,这些数据由一个函数传进来,然后将这个列表的数据加到这个查询,这些数据不是随机数的是传进来的值
select * from t1 limit 100
查出一百行,我这有这样一个2,7...,如何将2,7...不规律数据100条放到查询结果中新的一列里
补充1:程序中有一个列表记录这些数据,这些数据由一个函数传进来,然后将这个列表的数据加到这个查询,这些数据不是随机数的是传进来的值
QStringList temp;
temp<<tr("SELECT 2 AS col2");//加入想要的数据
temp<<tr("UNION ALL SELECT 7");//加入想要的数据
.... // 可以用循环加入
QString sql("SELECT t1.col1,t2.col2 FROM t1 RIGHT JOIN (%1) AS t2 ON (条件1)")
这里条件如果顺序插入,可以让t1和t2表的row_number相等,这里我实际中有其他条件
sql.arg(temp.join(" "))
我实际上是需要将这些数据插入t3中
INSERT INTO t3 (col1,col2)
(SELECT t1.col1,t2.col2 FROM t1 RIGHT JOIN (SELECT 2 AS col2,1 AS col3
UNION ALL SELECT 7,2 UNION ALL....) AS t2 ON t2.col3=t1.col4)
就是不知道多次使用union all这样效率怎么样,不知道有没有更好的解决办法?
用
group_concat
函数试试, 如果支持json, 也可以用JSON_ARRAYAGG
文档
https://dev.mysql.com/doc/ref...