Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何形成这个MySQL查询?_Mysql_If Statement_Union - Fatal编程技术网

如何形成这个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

我想创建一个类似于的MySQL查询

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列包含芝加哥两个城市列表的不同值。是这样吗?谢谢。“状态”字段显然存在问题,但此解决方案确实有效。