Как найти поле с самой длинной длиной определенного столбца в таблице MySQL?
Поиск поля с наибольшей длиной в столбце
Ответ 1
Вы можете использовать команду 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);
?>
Ответ 2
В MySQL есть много строковых функций, которые вы можете использовать:
SELECT LENGTH(col) as my_len FROM my_table ORDER BY my_len DESC LIMIT 1
Более фанковая версия (она работает):
SELECT MAX(LENGTH(col)) FROM my_table
Ответ 3
Возможно, вы захотите рассмотреть CHAR_LENGTH()
.
Отличия от документация:
CHAR_LENGTH()
: Возвращает количество символов в аргументе
LENGTH()
: Возвращает длину строки в байтах
Например, при использовании UTF-8
в столбце эти функции возвращают разные значения.
И обратите внимание, что длина, заданная для столбца string
(ex: varchar
), фактически равна его длине символа.
Ответ 4
Пусть имя таблицы равно tbl1, а имя столбца - col1, в котором вы пытаетесь найти самое длинное значение длины.
Подход 1:
select col1, length(col1) from tbl1 order by length(col1) desc limit 1
Это вернет значение, а также длину значения.
Вышеупомянутый подход лучше всего, если их только одна строка или вы хотите получить только одну строку, которая имеет самую длинную длину. В случае, если они представляют собой несколько строк, которые имеют самую длинную длину, и вы хотите получить их все, то второй подход будет лучшим.
Подход 2:
выберите col1, length (col1) из tbl1, где length (col1) in (select max (длина (col1)) от tbl1)
Это вернет как значение, так и длину значения всех строк, которые имеют самое длинное значение.