Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je sélectionner le champ de texte le plus long lors de l'utilisation de GROUP BY dans mysql, à la MAX() ?

Vous devez utiliser CHAR_LENGTH au lieu de 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

Vous voudrez peut-être voir la différence :CHAR_LENGTH( ) vs LONGUEUR( )

Démo SQLFiddle