Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL 5.7.5+ nhận hàng đầu tiên cho các nhóm

ORDER BY của bạn trong truy vấn con bảng dẫn xuất bị bỏ qua trong MySQL 5.7.

Xem https://dev.mysql.com/ doc / refman / 5.7 / en / origin-table -mize.html

Truy vấn bên ngoài của bạn có THAM GIA và NHÓM BẰNG, vì vậy nó không đủ điều kiện để phổ biến LỆNH BẰNG, do đó nó bỏ qua LỆNH BẰNG LỆNH.

Hành vi của trình tối ưu hóa này được kiểm soát bởi công tắc trình tối ưu hóa derived_merge . Bạn có thể tắt nó.

Demo:

mysql [localhost] {msandbox} (test) > select @@version;
+-----------+
| @@version |
+-----------+
| 5.7.21    |
+-----------+

mysql [localhost] {msandbox} (test) > SELECT     columnPrimaryKey,     column1,     column2,     column3 FROM     (SELECT         columnPrimaryKey,         column1,         column2,         column3     FROM testTable     ORDER BY column2 ) AS tbl GROUP BY column3;
+------------------+----------------+---------+---------+
| columnPrimaryKey | column1        | column2 | column3 |
+------------------+----------------+---------+---------+
|                1 | Some Name 8-4  |       4 |       8 |
|                6 | Some Name 9-1  |       1 |       9 |
|                8 | Some Name 10-2 |       2 |      10 |
+------------------+----------------+---------+---------+

mysql [localhost] {msandbox} (test) > set optimizer_switch = 'derived_merge=off';
Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} (test) > SELECT     columnPrimaryKey,     column1,     column2,     column3 FROM     (SELECT         columnPrimaryKey,         column1,         column2,         column3     FROM testTable     ORDER BY column2 ) AS tbl GROUP BY column3;
+------------------+----------------+---------+---------+
| columnPrimaryKey | column1        | column2 | column3 |
+------------------+----------------+---------+---------+
|                5 | Some Name 8-1  |       1 |       8 |
|                6 | Some Name 9-1  |       1 |       9 |
|                8 | Some Name 10-2 |       2 |      10 |
+------------------+----------------+---------+---------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Left Join vượt trội hơn Inner Join?

  2. Làm cách nào để tạo hybrid_method đếm số bản ghi từ X ngày qua?

  3. Khóa cấp hàng MySQL

  4. tên cơ sở dữ liệu biến

  5. Mysql Tạo bảng bằng Trigger