Pregunta

¿Cómo encuentro el campo con la longitud más larga de una columna específica en una tabla MySQL?

¿Fue útil?

Solución 2

Puede usar la longitud del comando MYSQL ()

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

Otros consejos

MySQL tiene un montón de Funciones de cadena ustedpuede usar:

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

Más versión funky (funciona):

SELECT MAX(LENGTH(col)) FROM my_table

Quizás quieras considerar CHAR_LENGTH().Diferencias con documentación:

CHAR_LENGTH():Devuelve el número de caracteres en el argumento.

LENGTH():Devuelve la longitud de una cadena en bytes

Por ejemplo, cuando se utiliza UTF-8 en su columna, estas funciones devuelven valores diferentes.

Y tenga en cuenta que la longitud que establezca para un string columna (ej.: varchar) es en realidad la longitud de sus caracteres.

Deje que el nombre de la tabla sea TBL1 y el nombre de la columna sea COL1 en el que está intentando encontrar el valor de longitud más largo.

enfoque 1:

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

Esto devolverá el valor y también la longitud del valor.

El enfoque anterior es mejor si su forma es solo una sola fila o desea recuperar solo una fila que tiene la longitud más larga.En caso de que sus filas múltiples que tengan una longitud más larga y desee recuperarlas, entonces el segundo enfoque sería el mejor.

enfoque 2:

Seleccione COL1, longitud (COL1) de TBL1 donde se longitud (COL1) IN (Seleccione max (longitud (col1)) de tbl1)

Esto devolverá tanto el valor como también la longitud del valor de todas las filas que tiene el valor más largo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top