2010-07-23 21 views
10

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

+0

Esta pregunta parece estar fuera de tema porque se trata de la administración de la base de datos y pertenece a [Server Fault] (http://www.serverfault.com) o [dba.se]. –

Respuesta

10

Puede utilizar 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); 
?> 
+6

La respuesta hubiera sido mejor sin el código PHP adicional para que la gente pueda ver la consulta rápidamente. –

14

MySQL tiene una gran cantidad de string functions puede utilizar:

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

más enrrollada (funciona):

SELECT MAX(LENGTH(col)) FROM my_table 
1

Deje que el nombre de la tabla sea tbl1 y el nombre de la columna sea col1 en el que está tratando de encontrar el archivo más largo valor ngth

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 solo tiene una fila o si desea recuperar solo una fila que tenga la mayor longitud. En caso de que sean varias filas que tengan la longitud más larga y desee recuperarlas todas, el segundo enfoque sería el mejor.

Enfoque 2:

seleccione col1, longitud (col1) de tbl1 donde la longitud (col1) en (seleccione max (longitud (col1)) a partir de tbl1)

Este devolverá tanto el valor como la longitud del valor de todas las filas que tengan el valor más largo.

2

Es posible que desee considerar CHAR_LENGTH(). Diferencias de documentation:

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

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

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

y observe que la longitud puesta para un string columna (por ejemplo: varchar) es en realidad su longitud de caracteres.

Cuestiones relacionadas