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

thêm nhiều dữ liệu trong tệp xml bằng PHP xmlwriter

Vấn đề của bạn là ở truy vấn:

$sql = "SELECT *,YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTH(FROM_UNIXTIME(timestamp)) AS MONTH 
         FROM ".NEWS_ARTICLES." GROUP BY YEAR, MONTH ORDER BY YEAR DESC, MONTH ";  

Hầu hết các cơ sở dữ liệu khác với MySQL sẽ từ chối truy vấn này, vì bạn đang nhóm trên 2 trường trong khi chọn nhiều trường.
Nhóm group by year, month sẽ chỉ hiển thị một hàng (ngẫu nhiên) từ một tháng và ẩn tất cả các hàng khác.

Giải pháp là bỏ nhóm group by mệnh đề hoàn toàn và viết lại truy vấn như sau:

$sql = "SELECT *,YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTH(FROM_UNIXTIME(timestamp)) AS MONTH 
         FROM ".NEWS_ARTICLES." ORDER BY YEAR DESC, MONTH ASC";

Nhận xét
Thật kỳ lạ khi bạn không có WHERE mệnh đề. Bạn có thực sự muốn chọn tất cả bài báo mọi lúc?
Một cách tiếp cận tốt hơn sẽ là giới hạn số lượng bài báo được chọn trong truy vấn bằng một số bộ lọc.
Lọc trong cơ sở dữ liệu luôn nhanh hơn là trong php.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel Homestead SQLSTATE [HY000] [2002] Kết nối bị từ chối sau khi máy chủ di chuyển

  2. Làm thế nào để tạo một đối tượng JSON trong MySql với một giá trị boolean?

  3. xóa bằng cách sử dụng ở đâu và hoặc

  4. Làm cách nào để khóa hàng InnoDB chưa tồn tại?

  5. Việc thay đổi loại trường mysql từ INT thành VARCHAR sẽ ảnh hưởng như thế nào đến dữ liệu được lưu trữ trước đó dưới dạng INT