Trouver le terrain avec la plus longue durée dans une colonne
-
28-09-2020 - |
Question
Comment puis-je trouver le terrain avec la plus longue longueur d'une colonne dans une table MySQL?
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.
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.
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.