如何形成这个MySQL查询?
我想创建一个类似于的MySQL查询如何形成这个MySQL查询?,mysql,if-statement,union,Mysql,If Statement,Union,我想创建一个类似于的MySQL查询 SELECT city, state, country FROM location UNION SELECT 'Chicago','Illinois', 'USA' IF 'Chicago' NOT IN (SELECT city FROM location); 基本上,如果结果中没有返回“Chicago”,我想将其附加到结果中。问题是,查询需要一个FROM表。我是否使用了一个虚拟表,或者我这样做完全是错误的?只需无条件地编写第二个SELECT,然后让U
SELECT city, state, country FROM location
UNION
SELECT 'Chicago','Illinois', 'USA' IF 'Chicago' NOT IN (SELECT city FROM location);
基本上,如果结果中没有返回“Chicago”,我想将其附加到结果中。问题是,查询需要一个FROM表。我是否使用了一个虚拟表,或者我这样做完全是错误的?只需无条件地编写第二个SELECT,然后让UNION为您完成工作。UNION将从结果集中删除重复项,因此在第二个查询中重复Chicago不会有什么害处。如果在第一个SELECT中也出现了Chicago,则UNION将删除由第二个查询创建的副本
SELECT city, state, country FROM location
UNION
SELECT 'Chicago','Illinois', 'USA'
你做错了。你能粘贴表结构吗?匿名向下投票者愿意解释他们的反对意见吗?我不是向下投票者。这不完全有效,因为如果Chicago已经存在于第一个select语句中,它将显示2次-第一个select语句显示一次,第二个select语句显示一次。即使我使用UNION DISTINCT,它也会这样做。@Chris:我唯一能看到它不起作用的方法是,如果state和country列包含芝加哥两个城市列表的不同值。是这样吗?谢谢。“状态”字段显然存在问题,但此解决方案确实有效。