在哪里放置SQL_CALC_FOUND_ROWS对DISTINCT关键字?

时间:2016-06-15 14:29:39

标签: mysql

我无法获得SQL_CALC_FOUND_ROWS返回的结果所以我发布了帖子:将SQL_CALC_FOUND_ROWS放在DISTINCT关键字的正确位置,例如SELECT DISTINCT myColumn FROM myTable WHERE someConditions;

1 个答案:

答案 0 :(得分:2)

SELECT syntax就是这样:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [MAX_STATEMENT_TIME = N]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
     

[...]

在实践中,只要您尊重整体语法(例如,不要在WHERE之前放置FROM),订单似乎并不重要:

mysql> SELECT DISTINCT SQL_CALC_FOUND_ROWS COUNT(*) FROM emails;
+----------+
| COUNT(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> SELECT SQL_CALC_FOUND_ROWS DISTINCT COUNT(*) FROM emails;
+----------+
| COUNT(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)