16

MySQL テーブル内の特定の列の長さが最も長いフィールドを見つけるにはどうすればよいですか?

4

4 に答える 4

27

MySQL には、使用できる多くの文字列関数があります。

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

よりファンキーなバージョン (動作します):

SELECT MAX(LENGTH(col)) FROM my_table
于 2010-07-23T14:05:06.247 に答える
10

mysql コマンド LENGTH() を使用できます

<?php 
$q = mysql_query("SELECT LENGTH(yourfield) AS fieldlength FROM yourtable ORDER BY fieldlength DESC LIMIT 1"); 
echo $longestfield = mysql_result($q,0); 
?>
于 2010-07-23T14:03:59.763 に答える
4

テーブルの名前を tbl1、列の名前を col1 とし、最長の長さの値を見つけようとしています。

アプローチ 1:

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

これにより、値と値の長さも返されます。

上記のアプローチは、それらが単一の行のみである場合、または最長の長さを持つ 1 つの行のみを取得する場合に最適です。それらが最長の複数の行であり、それらすべてを取得したい場合は、2番目のアプローチが最適です。

アプローチ 2:

tbl1 から col1、長さ (col1) を選択します。ここで、長さ (col1) は (tbl1 から max(length(col1)) を選択します)

これは、値と、最も長い値を持つすべての行の値の長さの両方を返します。

于 2016-08-01T06:13:01.937 に答える
3

検討したいかもしれませんCHAR_LENGTH()ドキュメントとの違い:

CHAR_LENGTH(): 引数の文字数を返す

LENGTH(): 文字列の長さをバイト単位で返します

たとえば、UTF-8列で使用する場合、これらの関数は異なる値を返します。

stringまた、列に設定した長さ (例: varchar) は、実際にはその文字長であることに注意してください。

于 2016-12-20T12:45:02.347 に答える