2010-07-23 69 views
10

如何查找MySQL表中特定列的最長長度的字段?在列中查找長度最長的字段

+0

這個問題似乎是題外話題,因爲它是關於數據庫管理,屬於[服務器故障](http://www.serverfault.com)或[dba.se]。 – 2013-08-12 21:45:46

回答

10

您可以使用mysql命令長度()

<?php 
$q = mysql_query("SELECT LENGTH(yourfield) AS fieldlength FROM yourtable ORDER BY fieldlength DESC LIMIT 1"); 
echo $longestfield = mysql_result($q,0); 
?> 
+6

如果沒有額外的PHP代碼,答案會更好,所以人們可以快速查看查詢。 – 2015-10-07 15:40:18

14

MySQL有很多string functions你可以使用:

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

更時髦的版本(它的工作原理):

SELECT MAX(LENGTH(col)) FROM my_table 
1

設表的名稱爲tbl1,列的名稱爲col1,其中您嘗試查找最長的le ngth值。

方法1:

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

這將返回值,並且還對值的長度。

上面的方法是最好的,如果他們只有一行或者你只想檢索一個長度最長的行。如果他們是長度最長的多行,並且您想要全部檢索它們,則第二種方法將是最好的。

方法2:

選擇COL1,長度(COL1)從TBL1其中長度(COL1)在(選擇 MAX(長度(從TBL1 COL1)))

這將返回所有具有最長值的行的值和長度值。

2

你可能想考慮CHAR_LENGTH()。從documentation 差異:

CHAR_LENGTH():返回字符數在參數

LENGTH():在你的柱上使用UTF-8時返回字符串的長度以字節爲單位

例如,這些函數返回不同的值。

請注意,您爲string列設置的長度(例如:varchar)實際上是其字符長度。