分组方式上的MySQL别名
我有以下mysql查询:分组方式上的MySQL别名,mysql,alias,Mysql,Alias,我有以下mysql查询: insert into my_table (col_a, col_b) select col_a, col_b, if(foo, bar, baz) as my_alias from qux group by my_alias having my_alias is not null 如果没有选择,我如何重写查询?如果不重写生成的字段我的别名 例如,我试图实现这样的目标,我只在列a、列b上插入: insert into my_table (col_a, c
insert into my_table (col_a, col_b)
select
col_a,
col_b,
if(foo, bar, baz) as my_alias
from qux
group by my_alias
having my_alias is not null
如果没有选择
,我如何重写查询?如果不重写生成的字段我的别名
例如,我试图实现这样的目标,我只在列a、列b上插入:
insert into my_table (col_a, col_b)
select
col_a,
col_b
from qux
group by if(foo, bar, baz) as my_alias
having my_alias is not null
我找到了一些以前的答案,其中这是通过进行子选择来实现的。没有一个能做到这一点吗?提前感谢。:
MySQL允许GROUPBY子句中的表达式,因此别名为
不必要的:
SELECT id, FLOOR(value/100) FROM tbl_name GROUP BY id,
FLOOR(value/100);
HAVING在末尾过滤掉空记录。我们也可以使用WHERE来过滤正手时的空记录。这意味着这应该是可行的:
insert into my_table (col_a, col_b)
select
col_a,
col_b
from qux
where if(foo, bar, baz) is not null
group by if(foo, bar, baz)
:
MySQL允许GROUPBY子句中的表达式,因此别名为
不必要的:
SELECT id, FLOOR(value/100) FROM tbl_name GROUP BY id,
FLOOR(value/100);
HAVING在末尾过滤掉空记录。我们也可以使用WHERE来过滤正手时的空记录。这意味着这应该是可行的:
insert into my_table (col_a, col_b)
select
col_a,
col_b
from qux
where if(foo, bar, baz) is not null
group by if(foo, bar, baz)
谢谢你的帮助,贾斯尼。我尝试使用别名是因为真正的“
if(foo,bar,baz)
”是大的和丑的:)谢谢你让我参考手册。我想这是不可能的。谢谢你的帮助,贾斯尼。我尝试使用别名是因为真正的“if(foo,bar,baz)
”是大的和丑的:)谢谢你让我参考手册。我想这是不可能的。