Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 在列名之间不使用逗号的情况下,SELECT查询如何在多个列上工作?_Mysql_Database_Alias_Rdbms_Select Query - Fatal编程技术网

Mysql 在列名之间不使用逗号的情况下,SELECT查询如何在多个列上工作?

Mysql 在列名之间不使用逗号的情况下,SELECT查询如何在多个列上工作?,mysql,database,alias,rdbms,select-query,Mysql,Database,Alias,Rdbms,Select Query,我正在学习W3SQL教程中的SQL 在研究SQL别名一章时,我遇到了以下问题: SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address FROM Customers; 如果仔细观察,查询正在从多个列中提取数据,则使用逗号附加来自不同列的数据,并在别名列名称地址下显示数据 如果你想看到工作演示,请转到URL http://www.w3schools.com/sql/trysql.asp?file

我正在学习W3SQL教程中的SQL

在研究SQL别名一章时,我遇到了以下问题:

SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address
FROM Customers;
如果仔细观察,查询正在从多个列中提取数据,则使用逗号附加来自不同列的数据,并在别名列名称地址下显示数据

如果你想看到工作演示,请转到URL

http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_alias_column2&ss=-1
当我们编写不带别名的普通查询以从表的不同列中提取数据时,我们使用逗号分隔列名,如下所示:

SELECT CustomerName, Address, City, PostalCode, Country FROM Customers;
我的疑问是,由于SELECT查询中没有使用逗号从不同列获取数据,那么它是如何工作的呢

您在第一个查询中看到的现有逗号仅用于连接输出中的字符串

请有人澄清我的疑问好吗

如果有人能从MySQL数据库的角度来解释我会更好,因为我只关心MySQL数据库系统


谢谢。

用户2839497!您可以将其视为一个公式,就像数学公式一样。因此,就像您可以
选择COL1+COL2作为总销售额一样…
您还可以将字符串附加到公式中


顺便说一句,我想我应该补充一点,加号(+)并不适用于在每个数据库中追加字符串。有些人有其他的语法或方法来做到这一点。(例如,我相信Informix或Oracle使用两个管道(| |)来实现这一点)

user2839497!您可以将其视为一个公式,就像数学公式一样。因此,就像您可以
选择COL1+COL2作为总销售额一样…
您还可以将字符串附加到公式中


顺便说一句,我想我应该补充一点,加号(+)并不适用于在每个数据库中追加字符串。有些人有其他的语法或方法来做到这一点。(例如,我相信Informix或Oracle使用两个管道(| |)来实现这一点)

两者都是两个不同的操作符。服务器解析器识别运算符,例如,或+。并妥善处理。列值将为这两个运算符求值。

这两个运算符都是不同的运算符。服务器解析器识别运算符,例如,或+。并妥善处理。列值对它们都进行计算。

这在MySQL中不起作用,因为在MySQL中,
+
运算符不能用于字符串连接。但一般来说,第二个字段是一个表达式,其中您将几个字段的值与一些字符串文字(
,“
连接起来。我正在学习w3schools SQL教程中的SQL
-请不要从w3schools学习。另外,为了连接MySQL,请使用它的
CONCAT
函数
选择CustomerName、CONCAT(地址、、、城市、、、邮政编码、、、国家)作为地址
@Mjh:w3schools教程有什么问题?我不明白为什么很多人反对学校!!!它们很容易理解,切中要害,比那些冗长的手册和其他类似的教程要好。@user2839497我没有解释,那是我的错。它们的错误在于它们既不正确也不真实,并且包含许多复杂的错误细节,导致人们走上错误的道路并得出错误的结论。是的,它们很容易理解,而且比官方手册更好,我承认这一点。使用诸如
w3学校
这样的名称可能会错误地让你得出结论,他们是一个类似于
w3.org
的权威机构,这基本上就是他们所扮演的角色。吸引人们,然后他们提供不标准、不正确的教程,这些教程确实可以教人,但只是在一定程度上。使用时要小心。@Mjh:谢谢您的解释,但他们会不断更新教程。我同意你的看法,2-3年前他们的教程质量很差,但现在情况不同了。它们涵盖了快速学习所需的几乎所有内容。这是我自己的经验。这在MySQL中不起作用,因为在MySQL中,运算符不能用于字符串连接。但一般来说,第二个字段是一个表达式,其中您将几个字段的值与一些字符串文字(
,“
连接起来。我正在学习w3schools SQL教程中的SQL
-请不要从w3schools学习。另外,为了连接MySQL,请使用它的
CONCAT
函数
选择CustomerName、CONCAT(地址、、、城市、、、邮政编码、、、国家)作为地址
@Mjh:w3schools教程有什么问题?我不明白为什么很多人反对学校!!!它们很容易理解,切中要害,比那些冗长的手册和其他类似的教程要好。@user2839497我没有解释,那是我的错。它们的错误在于它们既不正确也不真实,并且包含许多复杂的错误细节,导致人们走上错误的道路并得出错误的结论。是的,它们很容易理解,而且比官方手册更好,我承认这一点。使用诸如
w3学校
这样的名称可能会错误地让你得出结论,他们是一个类似于
w3.org
的权威机构,这基本上就是他们所扮演的角色。吸引人们,然后他们提供不标准、不正确的教程,这些教程确实可以教人,但只是在一定程度上。使用时要小心。@Mjh:谢谢您的解释,但他们会不断更新教程。我同意你的看法,2-3年前他们的教程质量很差,但现在情况不同了。它们涵盖了快速学习所需的几乎所有内容。这是我自己的经验。