質問
MySQL テーブル内の特定の列の最長の長さのフィールドを見つけるにはどうすればよいですか?
解決 2
MySQLコマンド長()
を使用できます。<?php
$q = mysql_query("SELECT LENGTH(yourfield) AS fieldlength FROM yourtable ORDER BY fieldlength DESC LIMIT 1");
echo $longestfield = mysql_result($q,0);
?>
. 他のヒント
MySQLには、文字列関数使用できる:
SELECT LENGTH(col) as my_len FROM my_table ORDER BY my_len DESC LIMIT 1
.
その他のファンキーなバージョン(それはうまくいきます):
SELECT MAX(LENGTH(col)) FROM my_table
. 検討してみてはいかがでしょうか CHAR_LENGTH()
。との違い ドキュメンテーション:
CHAR_LENGTH()
:引数の文字数を返す
LENGTH()
:文字列の長さをバイト単位で返します
たとえば、使用するときは、 UTF-8
列では、これらの関数は異なる値を返します。
に設定した長さに注意してください。 string
列 (例: varchar
) は実際の文字長です。
テーブルの名前をTBL1とし、最長の長さの値を見つけようとしているCOL1の名前になります。
アプローチ1:
select col1, length(col1) from tbl1 order by length(col1) desc limit 1
.
これは値と値の長さを返します。
上記のアプローチは、単一の行にすぎない場合、または長い長さを持つ1行だけを取得したい場合に最適です。彼らが最も長い長さを持ち、あなたがそれらすべてを検索したいのは複数の行である場合には、2番目のアプローチは最高です。
アプローチ2:
TBL1からCOL1、長さ(COL1)を選択します。 MAX(長さ(COL1))からTBL1)
これは、最長値を持つすべての行の値の値とその値の長さの両方を返します。
所属していません StackOverflow