Поиск поле с самой длинной длиной в колонне

StackOverflow https://stackoverflow.com/questions/3318843

  •  28-09-2020
  •  | 
  •  

Вопрос

Как найти поле с самой длинной длиной определенного столбца в таблице 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
.

Дополнительная версия Funky (работает):

SELECT MAX(LENGTH(col)) FROM my_table
.

Вы можете подумать о CHAR_LENGTH(). Отличия от Документация :

CHAR_LENGTH(): возврат количества символов в аргументе

LENGTH(): вернуть длину строки в байтах

Например, при использовании UTF-8 в вашем столбце эти функции возвращают разные значения.

и обратите внимание, что длина, которую вы устанавливаете для столбца string (EX: varchar), на самом деле его длина символа.

Пусть имя таблицы будет TBL1, а имя столбца - COL1, в котором вы пытаетесь найти самое длинное значение длины.

<Сильный> Подход 1:

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

Это вернет значение, а также длину значения.

Приведенный выше подход лучше всего, если их только один ряд или вы хотите получить только одну строку, которая имеет самую длинную длину.В случае, если их несколько строк, которые имеют длинную длину, и вы хотите получить их все, то второй подход будет лучшим.

<Сильный> Подход 2:

Выберите COL1, длина (COL1) из TBL1, где длина (COL1) в (выберите max (длина (col1)) из tbl1)

Это вернет как значение, так и длину значения всех строк, которые имеют самое длительное значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top