Mysql 是否可以在同一查询中对使用AS关键字形成的字段执行WHERE?
例如,我有以下查询(请参阅): 我在添加最后一行时遇到语法错误Mysql 是否可以在同一查询中对使用AS关键字形成的字段执行WHERE?,mysql,sql,Mysql,Sql,例如,我有以下查询(请参阅): 我在添加最后一行时遇到语法错误 select id, case nickname when '' then full_name else nickname end as new_name from your_table where new_name = 'Jen' 我可以用WHERE语句过滤掉结果集吗?我已经有一段时间没有使用MySQL了,但是试试看 select id, case nickname when '' then ful
select id,
case nickname when '' then full_name else nickname end as new_name
from your_table
where new_name = 'Jen'
我可以用
WHERE
语句过滤掉结果集吗?我已经有一段时间没有使用MySQL了,但是试试看
select id,
case nickname when '' then full_name else nickname end as new_name
from your_table
where case nickname when '' then full_name else nickname end = 'Jen'
或者,您可以使用子查询。在我发布这条回复后,我突然想到了这一点,肯怀特打败了我!我检查了一个本地数据库,两种方法的执行计划都是相同的,尽管您的里程可能会有所不同。我已经有一段时间没有使用MySQL了,但是请尝试一下
select id,
case nickname when '' then full_name else nickname end as new_name
from your_table
where case nickname when '' then full_name else nickname end = 'Jen'
或者,您可以使用子查询。在我发布这条回复后,我突然想到了这一点,肯怀特打败了我!我检查了一个本地数据库,两种方法的执行计划都是相同的,尽管您的里程数可能会有所不同。如果您在“select*from(…)中使用第一条语句,您应该能够使用新的\u name fieldname
ie-使用子查询如果您在“select*from(…)”中使用第一条语句,您应该能够使用新的\u name字段名
ie-使用子查询您需要使用子查询:
select t.id, t.new_name from
(select id,
case nickname when '' then full_name else nickname end as new_name
from your_table) t
where t.new_name = 'Jen'
您需要使用子查询:
select t.id, t.new_name from
(select id,
case nickname when '' then full_name else nickname end as new_name
from your_table) t
where t.new_name = 'Jen'
我认为您需要将第一条语句包装在一个“select*from”中,即-使用子queryeah。不幸的是,我收到了错误消息
错误代码:1054。“where子句”中的未知列“new_name”
很抱歉,我没有注意到您提到的语法错误,因此不久就更改了我的名称。我的错。我想你需要将第一条语句包装在“select*from”中,即-使用子查询。很遗憾,我收到了错误消息错误代码:1054。“where子句”中的未知列“new_name”
很抱歉,我没有注意到您提到的语法错误,因此不久就更改了我的名称。我的错。