Меню Закрыть

Mysql длина строки length

Содержание

Строковые функции возвращают NULL , если длина результата оказывается больше, чем указано в значении серверного параметра max_allowed_packet . See Раздел 5.5.2, «Настройка параметров сервера».

Для функций, работающих с позициями в строке, нумерация позиций начинается с 1.

Возвращает значение ASCII-кода крайнего слева символа строки str ; 0 если str является пустой строкой; NULL , если str равна NULL :

См. также функцию ORD() .

Если крайний слева символ строки str представляет собой многобайтный символ, то данная функция возвращает его код, который вычисляется на основе ASCII-кодов составляющих его символов по формуле: ((первый байт ASCII-кода)*256+(второй байт ASCII-кода))[*256+третий байт ASCII-кода. ]. Если крайний слева символ не является многобайтным, то данная функция возвращает то же значение, что и ASCII():

Преобразует числа из одной системы счисления в другую. Возвращает строковое представление числа N , преобразованного из системы счисления с основой from_base в систему счисления с основой to_base . Если хотя бы один из аргументов равен NULL , то возвращается NULL . Аргумент N интерпретируется как целое число, но может быть задан как целое число или строка. Минимальное значение основы системы счисления равно 2 , а максимальное — 36 . Если аргумент to_base представлен отрицательным числом, то принимается, что N — число со знаком. В противном случае N трактуется как беззнаковое число. Функция CONV работает с 64-битовой точностью:

Возвращает строку, представляющую двоичную величину N , где N — целое число большого размера ( BIGINT ). Эквивалентна функции CONV(N,10,2) . Если N равно NULL , возвращается NULL :

Возвращает строковое представление восьмеричного значения числа N , где N — целое число большого размера. Эквивалентно функции CONV(N,10,8) . Если N равно NULL , возвращается NULL :

Если N_OR_S — число, то возвращается строковое представление шестнадцатеричного числа N , где N — целое число большого размера ( BIGINT ). Эквивалентна функции CONV(N,10,16) . Если N_OR_S — строка, то функция возвращает шестнадцатеричную строку N_OR_S , где каждый символ в N_OR_S конвертируется в 2 шестнадцатеричных числа. Является обратной по отношению к строкам 0xff .

CHAR() интерпретирует аргументы как целые числа и возвращает строку, состоящую из символов, соответствующих ASCII-коду этих чисел. Величины NULL пропускаются:

Возвращает строку, являющуюся результатом конкатенации аргументов. Если хотя бы один из аргументов равен NULL , возвращается NULL . Может принимать более 2 аргументов. Числовой аргумент преобразуется в эквивалентную строковую форму:

CONCAT_WS(separator, str1, str2. )

Функция CONCAT_WS () обозначает CONCAT With Separator (конкатенация с разделителем) и представляет собой специальную форму функции CONCAT() . Первый аргумент является разделителем для остальных аргументов. Разделитель, так же как и остальные аргументы, может быть строкой. Если разделитель равен NULL , то результат будет NULL . Данная функция будет пропускать все величины NULL и пустые строки, расположенные после аргумента-разделителя. Разделитель будет добавляться между строками, подлежащими конкатенации:

LENGTH(str) , OCTET_LENGTH(str) , CHAR_LENGTH(str) , CHARACTER_LENGTH(str)

Возвращает длину строки str:

Обратите внимание: для CHAR_LENGTH() и CHARACTER_LENGTH() многобайтные символы учитываются только однажды.

Возвращает длину строки str в битах:

LOCATE(substr,str) , POSITION(substr IN str)

Возвращает позицию первого вхождения подстроки substr в строку str . Если подстрока substr в строке str отсутствует, возвращается 0 :

Данная функция поддерживает многобайтные величины. В MySQL 3.23 эта функция чувствительна к регистру, а в 4.0 она чувствительна к регистру только в случае, если хотя бы один из аргументов является строкой с двоичными данными.

Возвращает позицию первого вхождения подстроки substr в строку str , начиная с позиции pos . Если подстрока substr в строке str отсутствует, возвращается 0 :

Данная функция поддерживает многобайтные величины. В MySQL 3.23 эта функция чувствительна к регистру, а в 4.0 она чувствительна к регистру, только в случае, если хотя бы один из аргументов является строкой с двоичными данными.

Возвращает позицию первого вхождения подстроки substr в строку str . То же, что и двухаргументная форма функции LOCATE() , за исключением перемены мест аргументов:

Данная функция поддерживает многобайтные величины. В MySQL 3.23 эта функция чувствительна к регистру, а в 4.0 она чувствительна к регистру только в случае, если хотя бы один из аргументов является строкой с двоичными данными.

Возвращает строку str , которая дополняется слева строкой padstr , пока строка str не достигнет длины len символов. Если строка str длиннее, чем len , то она будет укорочена до len символов.

Возвращает строку str , которая дополняется справа строкой padstr , пока строка str не достигнет длины len символов. Если строка str длиннее, чем len , то она будет укорочена до len символов.

Возвращает крайние слева len символов из строки str :

Данная функция поддерживает многобайтные величины.

Возвращает крайние справа len символов из строки str :

Данная функция поддерживает многобайтные величины.

SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len) , MID(str,pos,len)

Возвращает подстроку длиной len символов из строки str , начиная от позиции pos . Существует форма с оператором FROM , для которой используется синтаксис ANSI SQL92:

Данная функция поддерживает многобайтные величины.

SUBSTRING(str,pos) , SUBSTRING(str FROM pos)

Возвращает подстроку из строки str , начиная с позиции pos :

Читайте также:  30 Ватт в час сколько в месяц

Данная функция поддерживает многобайтные величины.

Возвращает подстроку из строки str перед появлениям count вхождений разделителя delim . Если count положителен, то возвращается все, что находится слева от последнего разделителя (считая слева). Если count отрицателен, то возвращается все, что находится справа от последнего разделителя (считая справа):

Данная функция поддерживает многобайтные величины.

Возвращает строку str с удаленными начальными пробелами:

Данная функция поддерживает многобайтные величины.

Возвращает строку str с удаленными конечными пробелами:

Данная функция поддерживает многобайтные величины.

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

Возвращает строку str с удаленными всеми префиксами и/или суффиксами, указанными в remstr . Если не указан ни один из спецификаторов BOTH , LEADING или TRAILING , то подразумевается BOTH . Если аргумент remstr не задан, то удаляются пробелы:

Данная функция поддерживает многобайтные величины.

Возвращает саундекс от str.

Soundex — «идентификатор звучания строки». Словосочетания «К скалам бурым» и «С каламбуроми» должны давать одинаковый саундекс, т.к. на слух они звучат одинаково. Заметим, однако, что этой функции для русского языка не существует. MySQL нуждается в ней, и если кто-то может предоставить алгоритм саундекса на русском языке — свяжитесь с нами. — Прим. переводчика.

Две созвучные строки, создающие впечатление почти одинаковых, могут иметь идентичные саундексы. Обычно стандартная саундекс-строка имеет длину 4 символа, но функция SOUNDEX() возвращает строку произвольной длины. Можно использовать функцию SUBSTRING() для извлечения стандартного саундекса строки из результата функции SOUNDEX() . В строке str игнорируются все символы, не являющиеся буквами или цифрами. Все международные буквенные символы, не входящие в диапазон A-Z , трактуются как гласные:

Возвращает строку, состоящую из N пробелов:

Возвращает строку str , в которой все вхождения строки from_str заменены на to_str :

Данная функция поддерживает многобайтные величины.

Возвращает строку, состоящую из строки str , повторенной count раз. Если значение count , возвращает пустую строку. Возвращает NULL , если str или count равны NULL :

Возвращает строку str с обратным порядком символов:

Данная функция поддерживает многобайтные величины.

Возвращает строку str , в которой подстрока начиная с позиции pos , имеющая длину len замещена на newstr :

Данная функция поддерживает многобайтные величины.

Возвращает str1 , если N = 1 , str2 , если N = 2 , и так далее. Если N меньше, чем 1 или больше, чем число аргументов, возвращается NULL . Функция ELT() является дополненительной по отношению к функции FIELD() :

Возвращает индекс строки str в списке str1, str2, str3, . . Если строка str не найдена, возвращается 0 . Функция FIELD() является дополнительной по отношению к функции ELT() :

Возвращает значение от 1 до N , если строка str присутствует в списке strlist , состоящем из N подстрок. Список строк представляет собой строку, состоящую из подстрок, разделенных символами ‘ , ‘. Если первый аргумент представляет собой строку констант, а второй является столбцом типа SET , функция FIND_IN_SET() оптимизируется для использования двоичной арифметики! Возвращает 0 , если str отсутствует в списке strlist или если strlist является пустой строкой. Если один из аргументов равен NULL , возвращается 0 . Данная функция не будет корректно работать, если первый аргумент содержит символ ‘ , ‘:

Возвращает множество (строку, содержащую подстроки, разделенные символами ‘ , ‘), состоящее из строк, имеющих соответствующий бит в наборе bits . Аргумент str1 соответствует биту 0 , str2 — биту 1 , и так далее. Нулевые строки в наборах str1 , str2 , . не прибавляются к результату:

Возвращает строку, где для каждому установленному биту в аргументе bits соответствует строка on , а каждому сброшенному биту — off . Каждая строка отделена разделителем, указанным в параметре separator (по умолчанию — ‘ , ‘), причем используется только количество битов, заданное аргументом number_of_bits (по умолчанию 64), из всего количества, указанного в bits :

Возвращает строку str , в которой все символы переведены в нижний регистр в соответствии с текущей установкой набора символов (по умолчанию — ISO-8859-1 Latin1):

Данная функция поддерживает многобайтные величины.

Возвращает строку str , в которой все символы переведены в верхний регистр в соответствии с текущей установкой набора символов (по умолчанию — ISO-8859-1 Latin1):

Данная функция поддерживает многобайтные величины.

Читает заданный файл и возвращает его содержимое в виде строки. Данный файл должен находится на сервере, должен быть указан полный путь к этому файлу и пользователь должен обладать привилегией FILE . Размер данного файла должен быть меньше указанного в max_allowed_packet и файл должен быть открыт для чтения для всех. Если файл не существует или не может быть прочитан по одной из вышеупомянутых причин, то функция возвращает NULL :

При использовании версии MySQL, отличной от 3.23, чтение файла необходимо выполнять внутри вашего приложения и использовать команду INSERT для внесения в базу данных информации, содержащейся в файле. Один из путей реализации этого с использованием библиотеки MySQL++ можно найти на https://www.mysql.com/documentation/mysql++/mysql++-examples.html.

Экранирует строку с тем, чтобы получить корректное значение для SQL-выражения. Строка заключается в одинарные кавычки, и каждое вхождение одинарной кавычки (‘ ‘ ‘), обратного слеша (‘ ‘), значения ASCII NUL и Control-Z экранируются обратным слешом. Если аргумент — NULL , то тогда результатом будет слово "NULL" без окружающих кавычек.

Читайте также:  Phoenix bios как поставить загрузку с флешки

MySQL при необходимости автоматически конвертирует числа в строки и наоборот:

Для преобразования числа в строку явным образом, необходимо передать его в качестве аргумента функции CONCAT() .

Если строковая функция содержит в качестве аргумента строку с двоичными данными, то и результирующая строка также будет строкой с двоичными данными. При этом число, конвертированное в строку, воспринимается как строка с двоичными данными. Это имеет значение только при выполнении операций сравнения.

Последнюю версию этой статьи, а также массу другой документации и примеров, вы всегда можете найти по адресу WebSupport.maryan.com.ua.

Любая строковая функция возвратит NULL, если строка результата превышает длину, установленную параметром сервера max_allowed_packet.

integer ASCII(str string)

Возвращает ASCII-код первого левого символа строки str. Возвращает 0, если строка str пустая. Возвращает NULL, если строка str не существует.

В случае, если первый левый символ строки str является многобайтовым, возвращает его код в формате: ((первый байт ASCII- код)*256+(второй байт ASCII -код))[*256+третий байт ASCII -код. ].

Если первый левый символ строки str не является многобайтовым, то действие аналогично действию функции ASCII() — возвращает ASCII-код первого левого символа строки str.

string CONV(int_or_str integer or string, from_base integer, to_base integer)

Мощная функция для конвертирования числа (int_or_str ) из одной системы исчисления (from_base) в другую систему (to_base). Возвращает NULL, если аргументы NULL. Минимальное значение .._base — 2, максимальное 36.

string BIN(int integer)

Возвращает двоичное значение аргумента int. Аналогично действию CONV(int,10,2). Возвращает NULL, если аргумент int NULL.

string OCT(int integer)

Возвращает восьмиричное значение аргумента int. Аналогично действию CONV(int,10,8). Возвращает NULL, если аргумент int NULL.

string HEX(int_or_str string or integer)

Возвращает шестнадцатиричное значение аргумента int_or_string. Аналогично действию CONV(int,10,16). Возвращает NULL, если аргумент int_or_string NULL.

Возвращает строку символов определенных кодом/кодами ASCII. Значение NULL пропускается.

string CONCAT(str1 string, str2 string. )

Объединяет строки Результатом является строка из состоящая из аргументов. Возвращает NULL, если какой либо из аргументов является NULL. Может быть более 2 аргументов. Числовые аргументы конвертируются в соответствующие строки.

string CONCAT_WS(separator string, str1 string, str2 string. )

Объединяет строки подобно функции CONCAT(), но с разделителем separator, который всавляется между строк-аргументов. Если separator является NULL, то результат будет NULL. Функция пропускает другие аргументы, если их значение NULL.

integer LENGTH(str string)

Функции возвращают длину строки str.

Примечание: многобайтовые символы считаются функцией CHAR_LENGTH().

integer OCTET_LENGTH(str string)

Функции возвращают длину строки str.

Примечание: многобайтовые символы считаются функцией CHAR_LENGTH().

integer CHAR_LENGTH(str string)

Функции возвращают длину строки str. Поддерживает многобайтовые символы.

integer CHARACTER_LENGTH(str string)

Функции возвращают длину строки str.

Примечание: многобайтовые символы считаются функцией CHAR_LENGTH().

integer POSITION(substr string IN str string)

Возвращает позицию первого вхождения подстроки substr в строке str. Возвращает 0, если substr не найдено в строке str. Поддерживает многобайтовые символы.

integer LOCATE(substr string, str string, pos integer)

LOCATE(substr string, str string) возвращает позицию первого вхождения подстроки substr в строке str. Возвращает 0, если substr не найдено в строке str. LOCATE(substr string, str string, pos integer) возвращает позицию первого вхождения подстроки substr в строке str, но начиная с pos. Возвращает 0, если substr не найдено в строке str (с учетом позиции, естественно). Поддерживает многобайтовые символы.

integer INSTR( str string, substr string)

Возвращает позицию первого вхождения подстроки substr в строке str. Возвращает 0, если substr не найдено в строке str (с учетом позиции, естественно). Поддерживает многобайтовые символы. Аналог LOCATE(), только аргументы поменяны местами.

string LPAD( str string, len integer, padstr string)

Возвращает строку str, добавив к началу str строку padstr и приведя общее количество символов в возвращенной строке к len. Если len больше, чем сумма длин строк, то разница за счет повторения строки padstr.

string RPAD( str string, len integer, padstr string)

Возвращает строку str, добавив к концу str строку padstr и приведя общее количество символов в возвращенной строке к len. Если len больше, чем сумма длин строк, то разница за счет повторения строки padstr.

string LEFT( str string, len integer)

Возвращает len первых символов изи строки str. Поддерживает многобайтовые символы.

string RIGHT( str string, len integer)

Возвращает len последних символов изи строки str. Поддерживает многобайтовые символы.

string SUBSTRING( str string, pos integer, len integer )

string SUBSTRING(str string FROM pos integer FOR len integer)

Возвращает подстроку строки str длиною len символов с позиции pos. Поддерживает многобайтовые символы. Вариант с "FROM " используется в синтаксисе ANSI SQL92. В функции SUBSTRING() если не указан аргумент len, то возвращает всю подстроку строки str с позиции pos.

Читайте также:  Точная дата выхода miui 10

string MID(str string, pos integer, len integer)

Возвращает подстроку строки str длиною len символов с позиции pos. Поддерживает многобайтовые символы. Вариант с "FROM " используется в синтаксисе ANSI SQL92. В функции SUBSTRING() если не указан аргумент len, то возвращает всю подстроку строки str с позиции pos.

string SUBSTRING_INDEX( str string, delim string, count integer)

Возвращает всю подстроку строки str с позиции определенной разделителем delim, находящимся по счету count.

string LTRIM( str string )

Возвращает строку str, удалив пробелы с начала строки. Поддерживает многобайтовые символы.

string RTRIM( str string )

Возвращает строку str, удалив пробелы с конца строки. Поддерживает многобайтовые символы.

string TRIM( [[BOTH | LEADING | TRAILING] [remstr] string FROM] str string )

С одним аргументом "str" — возвращает строку str, удалив пробелы с конца строки. Аргумент "remstr" определяет символ/подстроку для удаления. Поддерживает многобайтовые символы. mysql> select TRIM(‘ bar ‘); -> ‘bar’

string SOUNDEX( str string )

Вычисляет soundex ключ для str. Ключ soundex имеет такое свойство, что слова, произносимые одинакого, имеют одинаковый soundex ключ, и это может быть использовано для корректировки результатов поиска. Возвращает строку длиной 4 символа, начинающуюся буквой A-Z.

string SPACE( N integer )

Возвращает строку состоящую из N пробелов.

string REPLACE( str string, from_str string, to_str string)

Возвращает строку str, заменив в ней все подстроки from_str на to_str. Поддерживает многобайтовые символы.

string REPEAT( str string, count integer)

Возвращает строку, состоящую из count раз повтореной строки str. Возвратит NULL если один из аргументов NULL.

string REVERSE( str string )

Возвращает строку, в которой все символы с последнего на первый. См. пример. Поддерживает многобайтовые символы.

string INSERT( str string, pos integer, len integer, newstr string )

Возвращает строку str, со вставкой подстроки newstr, с позиции pos строки str и длиной len символов. Поддерживает многобайтовые символы.

string ELT( N integer, str1 string, str2 string, str3 string. )

Возвратит str1, если N = 1, str2 если N = 2, И так далее. Возвратит NULL если N меньше 1 больше количества аргументов.

integer FIELD( str string, str1 string, str2 string, str3 string. )

Возвратит индекс (номер по порядку) str из списка строк str1, str2, str3, . . Возвратит 0, если str не найдена в списке.

integer FIND_IN_SET( str string, strlist string )

Возвращает значение от 1 до . в зависимости от позиции строки str среди строк (подстрок) в строке strlist. Строки (подстроки) в strlist разделены ",". Возвращает 0, если str не найдена среди строк в strlist. Возвращает NULL, если один из аргументов NULL.

string MAKE_SET( bits, str1 string , str2 string . )

Возвращает одну из строк-аргументов в зависимости от побитового состояния bits. str1 возвратится при bit 0, str2 при bit 1, и так далее.

string EXPORT_SET( bits, on string , off string, [separator char, [number_of_bits integer]])

Возвращает строку, в которой для каждого бита выводится состояние on или off . Разделены состояния separator.

string LCASE( str string ) string

Возвращает строку str, заменив в ней все заглавные буквы на прописные. Поддерживает многобайтовые символы.(По умолчанию ISO-8859-1 Latin1).

string LOWER( str string )

Возвращает строку str, заменив в ней все заглавные буквы на прописные. Поддерживает многобайтовые символы.(По умолчанию ISO-8859-1 Latin1).

string UCASE( str string )

Возвращает строку str, заменив в ней все прописные буквы на заглавные. Поддерживает многобайтовые символы.(По умолчанию ISO-8859-1 Latin1).

string UPPER( str string )

Возвращает строку str, заменив в ней все прописные буквы на заглавные. Поддерживает многобайтовые символы.(По умолчанию ISO-8859-1 Latin1).

string LOAD_FILE( file_name string )

What’s the main difference between length() and char_length() ?

I believe it has something to do with binary and non-binary strings. Is there any practical reason to store strings as binary?

2 Answers 2

LENGTH() returns the length of the string measured in bytes.
CHAR_LENGTH() returns the length of the string measured in characters.

This is especially relevant for Unicode, in which most characters are encoded in two bytes. Or UTF-8, where the number of bytes varies. For example:

As you can see the Euro sign occupies 3 bytes (it’s encoded as 0xE282AC in UTF-8) even though it’s only one character.

varchar(10) will store 10 characters, which may be more than 10 bytes. In indexes, it will allocate the maximium length of the field — so if you are using UTF8-mb4, it will allocate 40 bytes for the 10 character field.

Not the answer you’re looking for? Browse other questions tagged mysql string or ask your own question.

Linked

Related

Hot Network Questions

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.1.14.35781

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.