更新时间:2024-07-30 GMT+08:00

SELECT

SELECT通常用于查询一个或多个表中的数据。

常用语法

SELECT
[ALL | DISTINCT | DISTINCTROW ]
select_expr
[, select_expr ...]
[FROM table_references [WHERE where_condition]
[GROUP BY {col_name | expr | position} [ASC | DESC], ...]
[HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
表1 说明信息

语法

说明

select_expr

每个select_expr都指示一个您想要查询的列。

FROM table_references

指您将从某一个或多个表中查询。

WHERE

关键词WHERE其后跟一个表达式,用于表示被选择的行所须满足的条件。

GROUP BY

语法中被使用的子句将按一定的顺序排列,GROUP BY表示语句间关系,支持列名。如一个HAVING子句必须位于GROUP BY子句之后,并在ORDER BY子句之前。

ORDER BY

语法顺序排列的一种方式,表示语句间关系,支持列名和指定的排序方式(如ASC、 DESC)。

LIMIT/OFFSET

对输出结果集的偏移量及大小给予约束,如:LIMIT接受一个或者两个数字参数。

语法说明

  • 暂不支持以空字符串作为别名。
  • 不支持select ... group by ... with rollup查询(当查询的表为分片表时,无法得到预期的结果)。
  • 暂不支持STRAIGHT_JOIN和NATURAL JOIN。
  • select for update仅支持简单查询,不支持join、group by、order by、limit。
  • select后输出字段要和表字段顺序保持一致,如果JOIN查询,将所有参与JOIN的字段都添加到select后的查询字段列表中,这样能提升SELECT查询效率。
  • 对于UNION中的每个SELECT, DDM 暂不支持使用多个同名的列。

    例如:

    如下SQL的SELECT中存在重复的列名。

    SELECT id, id, name FROM t1 UNION SELECT pk, pk, name FROM t2;