Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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 union都显示了不同的结果;实际上是;同样的问题?_Mysql_Sql_Select_Union - Fatal编程技术网

为什么MySQL union都显示了不同的结果;实际上是;同样的问题?

为什么MySQL union都显示了不同的结果;实际上是;同样的问题?,mysql,sql,select,union,Mysql,Sql,Select,Union,我在做一个查询,结果有误,我修改了,它可以工作,但查询与原始查询非常相似,请看: 原件:(不起作用) 结果: user1 | pass1 userUnion1 | passUnion1 user1 | pass1 passUnion1 | userUnion1 解决方案:(工作) 结果: user1 | pass1 userUnion1 | passUnion1 user1 | pass1 passUnion1 | userUnion1 查询的意图是合并相同的结果,但列反转,在原始查询中

我在做一个查询,结果有误,我修改了,它可以工作,但查询与原始查询非常相似,请看:

原件:(不起作用)

结果:

user1 | pass1
userUnion1 | passUnion1
user1 | pass1
passUnion1 | userUnion1
解决方案:(工作)

结果:

user1 | pass1
userUnion1 | passUnion1
user1 | pass1
passUnion1 | userUnion1
查询的意图是合并相同的结果,但列反转,在原始查询中它不会反转列,但在解决方案查询中它会反转列。为什么

(注意,在最初的查询中,我要求将密码设置为用户名,将用户名设置为密码),您能解释一下吗?

在第一个查询中:

select username, password from tbl_user
union all
select username as password, password as username from tbl_user
您只需将
tbl_user
与自身结合起来。将忽略联合体后半部分中的别名。此查询与执行以下操作相同:

select username, password from tbl_user
union all
select username, password from tbl_user
同样,您的第二个工作查询与以下相同:

select username, password from tbl_user
union all
select password, username from tbl_user
MySQL和大多数数据库中联合查询的一般经验法则是,每个选择列表中的列类型和数量相同。

在第一个查询中:

select username, password from tbl_user
union all
select username as password, password as username from tbl_user
您只需将
tbl_user
与自身结合起来。将忽略联合体后半部分中的别名。此查询与执行以下操作相同:

select username, password from tbl_user
union all
select username, password from tbl_user
同样,您的第二个工作查询与以下相同:

select username, password from tbl_user
union all
select password, username from tbl_user

MySQL和大多数数据库中联合查询的一般经验法则是,每个选择列表中的列的类型和数量相同。

联合中不同结果集的列按其位置(第一、第二、…)处理,而不是按列别名处理


如果联合操作按名称进行,则第一个查询将起作用。

联合中不同结果集的列按其位置(第一、第二、…)处理,而不是按列别名处理

如果联合操作按名称工作,则第一个查询将工作