Domanda

Come trovo il campo con la lunghezza più lunga di una colonna specifica in una tabella MySQL?

È stato utile?

Soluzione 2

È possibile utilizzare la lunghezza 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); 
?>
.

Altri suggerimenti

mysql ha un sacco di Funzioni stringa Può usare:

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

Più versione funky (funziona):

SELECT MAX(LENGTH(col)) FROM my_table
.

Potresti volerlo prendere in considerazione CHAR_LENGTH(). Differenze da Documentazione :

.

CHAR_LENGTH(): Numero di ritorno di caratteri nell'argomento

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

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

e nota che la lunghezza impostata per una colonna string (EX: varchar) è in realtà la sua lunghezza del carattere.

Lascia che il nome della tabella sia tbl1 e il nome della colonna è col1 in cui si sta tentando di trovare il valore di lunghezza più lungo.

approccio 1:

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

Questo restituirà il valore e anche la lunghezza del valore.

L'approccio di cui sopra è meglio se la loro è solo una singola riga o si desidera recuperare una sola riga che sta avendo la lunghezza più lunga.Nel caso in cui le loro siano più righe che hanno una lunghezza più lunga e vuoi recuperarle tutto allora il secondo approccio sarebbe il migliore.

approccio 2:

.

Selezionare Col1, lunghezza (COL1) da TBL1 dove lunghezza (COL1) in (Seleziona Max (lunghezza (COL1)) da TBL1)

Restituisce sia il valore che la lunghezza del valore di tutte le righe che stanno avendo il valore più lungo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top