2010-07-23 9 views

risposta

10

È possibile utilizzare il comando mysql LUNGHEZZA()

<?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 risposta sarebbe stata migliore senza il codice PHP aggiuntivo in modo che le persone possano vedere rapidamente la query. –

14

MySQL ha un sacco di string functions è possibile utilizzare:

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

più funky (funziona):

SELECT MAX(LENGTH(col)) FROM my_table 
1

Lascia che il nome della tabella sia tbl1 e il nome della colonna sia col1 in cui stai cercando di trovare il le più lungo ngth value.

Approccio 1:

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

Ciò restituirà il valore e anche la lunghezza del valore.

L'approccio sopra è il migliore se la loro è solo una riga singola o si desidera recuperare solo una riga che ha la lunghezza più lunga. Nel caso in cui siano più righe che hanno la lunghezza più lunga e si desidera recuperarle tutte, il secondo approccio sarebbe il migliore.

Approccio 2:

select col1, lunghezza (col1) dal tbl1 cui lunghezza (col1) a (selezionare massima (lunghezza (col1)) dal tbl1)

Questo restituirà sia il valore che la lunghezza del valore di tutte le righe che hanno il valore più lungo.

2

Si potrebbe prendere in considerazione CHAR_LENGTH(). Differenze da documentation:

CHAR_LENGTH(): numero di caratteri Rientro in argomento

LENGTH(): Restituisce la lunghezza di una stringa in byte

Ad esempio, quando si utilizza UTF-8 sulla vostra colonna, questi le funzioni restituiscono valori diversi.

E si noti che la lunghezza impostata per una colonna string (ad esempio: varchar) è in realtà la lunghezza del carattere.

Problemi correlati