在该SELECT语句的 mysql 文档中,它显示了以下语法:
SELECT
...
select_expr [, select_expr] ...
[FROM table_references]
...
但是除了举几个例子之外,它并没有真正太严格地谈论 a 到底select_expr是什么,例如:
- 每个 select_expr 表示您要检索的列。必须至少有一个 select_expr。
- SELECT 也可用于检索不参考任何表的计算行。例如:
mysql> SELECT 1 + 1; -> 2
例如,我select_expr能想到的一些例子是:
SELECT field... // grab a field
SELECT CONCAT(field1, field2, ...)... // grab a calculated field
SELECT NOW() ... // grab a value that has nothing to do with a field
SELECT (SELECT id FROM othertable)... // grab a value from a subselect that returns a scalar
当然,后者可能会变得相当复杂,因为理论上它可以在其中执行任意多条 SQL 语句。
注意上面使用的是mysql参考手册,但我认为这是一个一般的 SQL 问题,任何后端都可以用来回答这个问题,因为我所知道的(postgres、mysql、mssql、sqlite、oracle)还有更多或更少相同的select_expr语法。