Come si trova il campo con la lunghezza più lunga di una colonna specifica in una tabella MySQL?Ricerca di un campo con la lunghezza più lunga in una colonna
risposta
È 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);
?>
La risposta sarebbe stata migliore senza il codice PHP aggiuntivo in modo che le persone possano vedere rapidamente la query. –
MySQL ha un sacco di string functions è possibile utilizzare:
versioneSELECT 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
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.
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.
Questa domanda sembra essere off-topic perché riguarda l'amministrazione del database e appartiene a [Server Fault] (http://www.serverfault.com) o [dba.se]. –