gpt4 book ai didi

mysql查询避免多次查询

转载 作者:行者123 更新时间:2023-11-30 01:27:26 25 4
gpt4 key购买 nike

我有这张 table :

CREATE TABLE my_table (
col1 VARCHAR(55),
col2 VARCHAR(55),
col3 VARCHAR(55),
0101 VARCHAR(55),
0202 VARCHAR(55),
0303 VARCHAR(55)
);

现在我想用另一个查询返回的数据填充表格,例如这个:

 SELECT   col1, col2, col3, GROUP_CONCAT(col4)
FROM my_other_table
GROUP BY col1, col2, col3

现在这个查询会产生这一行(还有更多,但对于我的情况,一行就足够了):

 col1     col2        col3      GROUP_CONCAT(col4)
-------------------------------------------------
FIB100 internet 1MEGAMAX 0202,0404

现在我想做的是检查连接值中是否有我的表 my_table 中尚未填充的列 (0101 0202 0303) 的列名。如果是 true 我想放一个 X

像这样:

表:插入后的 my_table

 col1     col2        col3       0101   0202    0303 
-----------------------------------------------------
FIB100 internet 1MEGAMAX X

我的问题:有什么方法可以使用相同的查询来做到这一点吗?

谢谢

最佳答案

希望这对您有帮助。

我更改了列的名称(不能使用数字作为列的名称)

CREATE TABLE my_table1 (
col1 VARCHAR(55),
col2 VARCHAR(55),
col3 VARCHAR(55),
c0101 VARCHAR(55),
c0202 VARCHAR(55),
c0303 VARCHAR(55)
);

CREATE TABLE my_other_table (
col1 VARCHAR(55),
col2 VARCHAR(55),
col3 VARCHAR(55),
col4 VARCHAR(55)
);

那么,查询是:

INSERT INTO my_table (col1,col2,col3,c0101,c0202,c0303)
select col1, col2, col3,
if (GROUP_CONCAT(col4) like '%0101%' , 'X' , '') as c0101,
if (GROUP_CONCAT(col4) like '%0202%' , 'X' , '') as c0202,
if (GROUP_CONCAT(col4) like '%0303%' , 'X' , '') as c0303
From my_Other_table
group by col1, col2, col3;

关于mysql查询避免多次查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com