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

Làm cách nào để chọn trường văn bản dài nhất khi sử dụng GROUP BY trong mysql, a la MAX ()?

Bạn cần sử dụng CHAR_LENGTH thay vì LENGTH

SELECT a.id, a.post_id, a.body
FROM posts a INNER JOIN
(
    SELECT post_ID, title, MAX(CHAR_LENGTH(body)) totalLength
    FROM posts
    GROUP BY post_ID, title
) b ON a.post_id = b.post_ID AND
        a.title = b.title AND
        CHAR_LENGTH(a.body) = b.totalLength

Bạn có thể muốn thấy sự khác biệt: CHAR_LENGTH () so với CHIỀU DÀI ()

SQLFiddle Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Chọn các hàng có cột dấu thời gian từ bây giờ đến 10 phút trước

  2. MySQL chọn một trường từ bảng điều kiện WHERE nằm trong nhiều hàng

  3. PDO ::PARAM cho kiểu thập phân?

  4. PHP nhiều lệnh MYSQL trong một truy vấn mysql_query ()

  5. Chuyển đổi tệp fbk (firebird) sang MySql