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

Làm thế nào để sắp xếp kết quả của nhiều truy vấn một cách xen kẽ?

Đây là cách bạn có thể làm điều này

select @rn:[email protected]+1 as id,colors from (
  (select @rn1:= @rn1+1 as rn,colors from table1,(select @rn1:=0)x order by id )
   union all 
  (select @rn2:= @rn2+1 as rn,numbers as colors from table2,(select @rn2:=0.5)x order by id)
   union all 
  (select @rn3:= @rn3+1 as rn,names as colors from table3,(select @rn3:=0.6)x order by id )
)x,(select @rn:=0)y order by rn ;

Ý tưởng là gán một rn giá trị cho từng mục trong bảng và cần đảm bảo rằng các giá trị này luôn theo thứ tự tăng dần

Vì vậy, nếu bạn chạy truy vấn cho mỗi bảng, bạn sẽ có

mysql> select @rn1:= @rn1+1 as rn,colors from table1,(select @rn1:=0)x order by id;
+------+--------+
| rn   | colors |
+------+--------+
|    1 | red    |
|    2 | green  |
|    3 | blue   |
|    4 | yellow |
+------+--------+
4 rows in set (0.00 sec)

mysql> select @rn2:= @rn2+1 as rn,numbers as colors from table2,(select @rn2:=0.5)x order by id;
+------+--------+
| rn   | colors |
+------+--------+
|  1.5 | ten    |
|  2.5 | two    |
|  3.5 | one    |
|  4.5 | three  |
|  5.5 | six    |
|  6.5 | five   |
+------+--------+
6 rows in set (0.00 sec)

mysql> select @rn3:= @rn3+1 as rn,names as colors from table3,(select @rn3:=0.6)x order by id;
+------+--------+
| rn   | colors |
+------+--------+
|  1.6 | jack   |
|  2.6 | peter  |
+------+--------+
2 rows in set (0.00 sec)

Tại đây, bạn có thể thấy table1 rn các giá trị là 1,2,3,.... table2 các giá trị là 1.5,2.5,3.5,.... table3 các giá trị là 1.6,2.6,....

vì vậy cuối cùng khi bạn sắp xếp kết quả với tất cả rn, nó sẽ là

1,1.5,1.6,2,2.5,2.6,....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi thời gian Javascript sang định dạng MySQL bằng PHP

  2. Quyền Laravel bị từ chối trên máy chủ Mysql từ xa (AWS aurora)

  3. JSON_MERGE_PATCH () so với JSON_MERGE_PRESERVE () trong MySQL:Sự khác biệt là gì?

  4. GROUP_CONCAT trong Truy vấn con IN

  5. Laravel $ q-> where () giữa các ngày