Документация MySQL
, если длина результата оказывается
больше, чем указано в значении серверного параметра
.
See section
.
Для функций, работающих с позициями в строке, нумерация позиций начинается
с 1.
, если
См. также функцию
.
представляет собой многобайтный
символ, то данная функция возвращает его код, который вычисляется на
основе ASCII-кодов составляющих его символов по формуле: ((первый байт
ASCII-кода)*256+(второй байт ASCII-кода))[*256+третий байт ASCII-кода...].
Если крайний слева символ не является многобайтным, то данная функция
возвращает то же значение, что и ASCII():
CONV(N,from_base,to_base)
Преобразует числа из одной системы счисления в другую. Возвращает
строковое представление числа
, преобразованного из системы счисления с
основой
. Если хотя бы один
из аргументов равен
, то возвращается
. Аргумент
интерпретируется как целое число, но может быть задан как целое число или
строка. Минимальное значение основы системы счисления равно
, а
максимальное -
. Если аргумент
представлен отрицательным числом,
то принимается, что
- число со знаком. В противном случае
трактуется
как беззнаковое число. Функция
mysql> SELECT CONV("a",16,2);
-> '1010'
mysql> SELECT CONV("6E",18,8);
-> '172'
mysql> SELECT CONV(-17,10,-18);
-> '-H'
mysql> SELECT CONV(10+"10"+'10'+0xa,10,10);
-> '40'
Возвращает строку, представляющую двоичную величину
, где
). Эквивалентна функции
CONV(N,10,2)
. Если
, возвращается
, где
-
целое число большого размера. Эквивалентно функции
CONV(N,10,8)
. Если
, возвращается
- число, то возвращается строковое представление
шестнадцатеричного числа
, где
).
Эквивалентна функции
CONV(N,10,16)
. Если
- строка, то функция
возвращает шестнадцатеричную строку
, где каждый символ в
конвертируется в 2 шестнадцатеричных числа. Является обратной по отношению
к строкам
.
CHAR(N,...)
интерпретирует аргументы как целые числа и возвращает строку,
состоящую из символов, соответствующих ASCII-коду этих чисел. Величины
mysql> SELECT CHAR(77,121,83,81,'76');
-> 'MySQL'
mysql> SELECT CHAR(77,77.3,'77.3');
-> 'MMM'
CONCAT(str1,str2,...)
Возвращает строку, являющуюся результатом конкатенации аргументов. Если
хотя бы один из аргументов равен
, возвращается
. Может принимать
более 2 аргументов. Числовой аргумент преобразуется в эквивалентную
строковую форму:
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
CONCAT_WS(separator, str1, str2,...)
.
Первый аргумент является разделителем для остальных аргументов.
Разделитель, так же как и остальные аргументы, может быть строкой. Если
разделитель равен
, то результат будет
. Данная функция будет
пропускать все величины
и пустые строки, расположенные после
аргумента-разделителя. Разделитель будет добавляться между строками,
подлежащими конкатенации:
mysql> SELECT CONCAT_WS(",","First name","Second name","Last Name");
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(",","First name",NULL,"Last Name");
-> 'First name,Last Name'
многобайтные
символы учитываются только однажды.
LOCATE(substr,str)
. Если
подстрока substr в строке
отсутствует, возвращается
mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
Данная функция поддерживает многобайтные величины. В MySQL 3.23 эта
функция чувствительна к регистру, а в 4.0 она чувствительна к регистру
только в случае, если хотя бы один из аргументов является строкой с
двоичными данными.
LOCATE(substr,str,pos)
,
начиная с позиции
. Если подстрока
отсутствует,
возвращается
mysql> SELECT LOCATE('bar', 'foobarbar',5);
-> 7
Данная функция поддерживает многобайтные величины. В MySQL 3.23 эта
функция чувствительна к регистру, а в 4.0 она чувствительна к регистру,
только в случае, если хотя бы один из аргументов является строкой с
двоичными данными.
INSTR(str,substr)
. То же,
что и двухаргументная форма функции
, за исключением перемены мест
аргументов:
mysql> SELECT INSTR('foobarbar', 'bar');
-> 4
mysql> SELECT INSTR('xbar', 'foobar');
-> 0
Данная функция поддерживает многобайтные величины. В MySQL 3.23 эта
функция чувствительна к регистру, а в 4.0 она чувствительна к регистру
только в случае, если хотя бы один из аргументов является строкой с
двоичными данными.
LPAD(str,len,padstr)
, которая дополняется слева строкой
, пока
строка
символов. Если строка
длиннее, чем
, то она будет укорочена до
символов.
mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
RPAD(str,len,padstr)
, которая дополняется справа строкой
, пока
строка
символов. Если строка
длиннее, чем
, то она будет укорочена до
символов.
mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
LEFT(str,len)
mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
Данная функция поддерживает многобайтные величины.
RIGHT(str,len)
mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
Данная функция поддерживает многобайтные величины.
SUBSTRING(str,pos,len)
MID(str,pos,len)
, начиная от позиции
. Существует форма с оператором
, для которой используется
синтаксис ANSI SQL92:
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
Данная функция поддерживает многобайтные величины.
SUBSTRING(str,pos)
, начиная с позиции
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
Данная функция поддерживает многобайтные величины.
SUBSTRING_INDEX(str,delim,count)
. Если
положителен, то возвращается все, что
находится слева от последнего разделителя (считая слева). Если
отрицателен, то возвращается все, что находится справа от последнего
разделителя (считая справа):
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
Данная функция поддерживает многобайтные величины.
Данная функция поддерживает многобайтные величины.
Данная функция поддерживает многобайтные величины.
с удаленными всеми префиксами и/или суффиксами,
указанными в
. Если не указан ни один из спецификаторов
,
, то подразумевается
. Если аргумент
не
задан, то удаляются пробелы:
Данная функция поддерживает многобайтные величины.
Возвращает саундекс от str.
Soundex - ''идентификатор звучания строки''. Словосочетания
''К скалам бурым'' и ''С каламбуроми'' должны давать одинаковый
саундекс, т.к. на слух они звучат одинаково. Заметим, однако,
что этой функции для русского языка не существует. MySQL нуждается
в ней, и если кто-то может предоставить алгоритм саундекса на русском
языке - свяжитесь с нами. - Прим. переводчика.
Две созвучные строки, создающие впечатление почти одинаковых, могут иметь
идентичные саундексы. Обычно стандартная саундекс-строка имеет длину 4
символа, но функция
возвращает строку произвольной длины. Можно
использовать функцию
. В строке
игнорируются все
символы, не являющиеся буквами или цифрами. Все международные буквенные
символы, не входящие в диапазон
, трактуются как гласные:
Возвращает строку, состоящую из
REPLACE(str,from_str,to_str)
, в которой все вхождения строки
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
Данная функция поддерживает многобайтные величины.
REPEAT(str,count)
Возвращает строку, состоящую из строки
, повторенной
раз. Если
значение
, возвращает пустую строку. Возвращает
, если
mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
Данная функция поддерживает многобайтные величины.
INSERT(str,pos,len,newstr)
, в которой подстрока начиная с позиции
, имеющая
длину
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
Данная функция поддерживает многобайтные величины.
ELT(N,str1,str2,str3,...)
, если
,
, если
, и так далее. Если
меньше,
чем
или больше, чем число аргументов, возвращается
. Функция
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
FIELD(str,str1,str2,str3,...)
str1, str2, str3, ...
. Если строка
не найдена, возвращается
. Функция
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2
mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
FIND_IN_SET(str,strlist)
, если строка
, состоящем из
подстрок. Список строк представляет собой строку,
состоящую из подстрок, разделенных символами
','
. Если первый аргумент
представляет собой строку констант, а второй является столбцом типа
,
функция
оптимизируется для использования двоичной
арифметики! Возвращает
, если
является пустой строкой. Если один из аргументов равен
,
возвращается
. Данная функция не будет корректно работать, если первый
аргумент содержит символ
','
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
MAKE_SET(bits,str1,str2,...)
Возвращает множество (строку, содержащую подстроки, разделенные символами
','
), состоящее из строк, имеющих соответствующий бит в наборе
.
Аргумент
,
, и так далее. Нулевые
строки в наборах
,
,
...
mysql> SELECT MAKE_SET(1,'a','b','c');
-> 'a'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
-> 'hello,world'
mysql> SELECT MAKE_SET(0,'a','b','c');
-> ''
EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
Возвращает строку, где для каждому установленному биту в аргументе
, а каждому сброшенному биту -
.
Каждая строка отделена разделителем, указанным в параметре
','
), причем используется только количество битов, заданное
аргументом
(по умолчанию 64), из всего количества,
указанного в
mysql> SELECT EXPORT_SET(5,'Y','N',',',4)
-> Y,N,Y,N
, в которой все символы переведены в нижний регистр
в соответствии с текущей установкой набора символов (по умолчанию -
ISO-8859-1 Latin1):
Данная функция поддерживает многобайтные величины.
, в которой все символы переведены в верхний регистр
в соответствии с текущей установкой набора символов (по умолчанию -
ISO-8859-1 Latin1):
Данная функция поддерживает многобайтные величины.
Читает заданный файл и возвращает его содержимое в виде строки. Данный
файл должен находится на сервере, должен быть указан полный путь к этому
файлу и пользователь должен обладать привилегией
. Размер данного
файла должен быть меньше указанного в
и файл должен
быть открыт для чтения для всех. Если файл не существует или не может быть
прочитан по одной из вышеупомянутых причин, то функция возвращает
При использовании версии MySQL, отличной от 3.23 и 4.0, чтение файла
необходимо выполнять внутри вашего приложения и использовать команду
для внесения в базу данных информации, содержащейся в файле. Один
из путей реализации этого с использованием библиотеки
можно найти
на .
mysql> SELECT 1+"1";
-> 2
mysql> SELECT CONCAT(2,' test');
-> '2 test'
Для преобразования числа в строку явным образом, необходимо передать его в
качестве аргумента функции
.
Если строковая функция содержит в качестве аргумента строку с двоичными
данными, то и результирующая строка также будет строкой с двоичными
данными. При этом число, конвертированное в строку, воспринимается как
строка с двоичными данными. Это имеет значение только при выполнении
операций сравнения.
Рубрики: Без рубрики |

