Question

Comment puis-je trouver le terrain avec la plus longue longueur d'une colonne dans une table MySQL?

Était-ce utile?

La solution 2

Vous pouvez utiliser la longueur de la commande MySQL ()

<?php 
$q = mysql_query("SELECT LENGTH(yourfield) AS fieldlength FROM yourtable ORDER BY fieldlength DESC LIMIT 1"); 
echo $longestfield = mysql_result($q,0); 
?>

Autres conseils

mysql a beaucoup de Fonctions de chaîne vouspeut utiliser:

SELECT LENGTH(col) as my_len FROM my_table ORDER BY my_len DESC LIMIT 1

plus funky version (ça marche):

SELECT MAX(LENGTH(col)) FROM my_table

Vous pouvez vouloir considérer CHAR_LENGTH().Les différences de la documentation:

CHAR_LENGTH():Retourne le nombre de caractères en argument

LENGTH():Retourne la longueur d'une chaîne en octets

Par exemple, lors de l'utilisation de UTF-8 sur votre colonne, ces fonctions retournent des valeurs différentes.

Et de noter que la durée que vous définissez pour un string la colonne (ex: varchar) est en fait son caractère longueur.

Laissez le nom de la table Soyez Tbl1 et le nom de la colonne Be Col1 dans lequel vous essayez de trouver la valeur de longueur la plus longue.

approche 1:

select col1, length(col1) from tbl1 order by length(col1) desc limit 1

Cela retournera la valeur et la longueur de la valeur.

L'approche ci-dessus est préférable que celle-ci ne soit qu'une seule ligne ou que vous souhaitez extraire une seule ligne qui a la longueur la plus longue.Au cas où leurs lignes sont multiples qui ont la plus longue longueur et que vous souhaitez les récupérer, la deuxième approche serait la meilleure.

approche 2:

Sélectionnez Col1, Longueur (Col1) de Tbl1 où la longueur (Col1) dans (Sélectionner max (longueur (col1)) de Tbl1)

Cela reviendra à la fois la valeur et la longueur de la valeur de toutes les lignes qui ont la valeur la plus longue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top