Praca z ciągami znaków
ASCII(str string)
BIN(int integer)
CHAR(int integer, ...)
CHARACTER_LENGTH(str string)
CHAR_LENGTH(str string)
CONCAT(str1 string, str2 string,...)
CONCAT_WS(separator string, str1 string, str2 string,...)
CONV(int_or_str integer or string, from_base integer, to_base integer)
ELT( N integer, str1 string, str2 string, str3 string,...)
EXPORT_SET( bits, on string , off string, [separator char, [number_of_bits integer]])
FIELD( str string, str1 string, str2 string, str3 string,...)
FIND_IN_SET( str string, strlist string )
HEX(int_or_str string or integer)
INSERT( str string, pos integer, len integer, newstr string )
INSTR( str string, substr string)
LCASE( str string ) string
LEFT( str string, len integer)
LENGTH(str string)
LOAD_FILE( file_name string )
LOCATE(substr string, str string, pos integer)
LOWER( str string )
LPAD( str string, len integer, padstr string)
LTRIM( str string )
MAKE_SET( bits, str1 string , str2 string ,...)
MID(str string, pos integer, len integer)
OCT(int integer)
OCTET_LENGTH(str string)
LOCATE(substr string, str string)
ORD(str string)
POSITION(substr string IN str string)
REPLACE( str string, from_str string, to_str string)
REPEAT( str string, count integer)
REVERSE( str string )
RIGHT( str string, len integer)
RPAD( str string, len integer, padstr string)
RTRIM( str string )
SOUNDEX( str string )
SPACE( N integer )
SUBSTRING(str string FROM pos integer FOR len integer)
SUBSTRING_INDEX( str string, delim string, count integer)
TRIM( [[BOTH | LEADING | TRAILING] [remstr] string FROM] str string )
UCASE( str string )
UPPER( str string )
Każda funkcja operująca na ciągach znaków zwróci NULL, jeśli długość wyniku przekroczy wartość ustawioną w parametrze serwera max_allowed_packet.
Zwraca kod ASCII pierwszego lewego znaku ciągu str. Zwraca 0, jeśli ciąg str jest pusty. Zwraca NULL, jeśli ciąg str nie istnieje.
Przykłady:
mysql> select ASCII('2');
-> 50
mysql> select ASCII(2);
-> 50
mysql> select ASCII('dx');
-> 100
Zobacz również ORD().
Jeśli pierwszy lewy znak ciągu str jest wielobajtowy, zwraca jego kod w formacie: ((pierwszy bajt kod ASCII)*256+(drugi bajt kod ASCII))[*256+trzeci bajt kod ASCII...].
Jeśli pierwszy lewy znak ciągu str nie jest wielobajtowy, działanie jest analogiczne do funkcji ASCII() – zwraca kod ASCII pierwszego lewego znaku ciągu str.
Przykłady:
mysql> select ORD('2');
-> 50
Zobacz również ASCII().
string CONV(int_or_str integer or string, from_base integer, to_base integer)
Skuteczna funkcja do konwersji liczby (int_or_str ) z jednego systemu liczbowego (from_base) do innego systemu (to_base). Zwraca NULL, jeśli argumenty są NULL. Minimalna wartość .._base to 2, maksymalna to 36.
Przykłady:
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'
Zobacz również BIN(), OCT(), HEX().
Zwraca wartość binarną argumentu int. Działa analogicznie do CONV(int,10,2). Zwraca NULL, jeśli argument int jest NULL.
Przykłady:
mysql> select BIN(12);
-> '1100'
Zobacz również CONV().
Zwraca wartość ósemkową argumentu int. Działa analogicznie do CONV(int,10,8). Zwraca NULL, jeśli argument int jest NULL.
Przykłady:
mysql> select OCT(12);
-> '14'
Zobacz również CONV().
string HEX(int_or_str string or integer)
Zwraca wartość szesnastkową argumentu int_or_string. Działa analogicznie do CONV(int,10,16). Zwraca NULL, jeśli argument int_or_string jest NULL.
Przykłady:
mysql> select HEX(255);
-> 'FF'
mysql> select HEX("abc");
-> 616263
mysql> select 0x616263;
-> "abc"
Zobacz również CONV().
Zwraca ciąg znaków określony kodem/kodami ASCII. Wartość NULL jest pomijana.
Przykłady:
mysql> select CHAR(77,121,83,81,'76');
-> 'MySQL'
mysql> select CHAR(77,77.3,'77.3');
-> 'MMM'
Zobacz również ASCII(), ORD().
string CONCAT(str1 string, str2 string,...)
Łączy ciągi znaków. Wynikiem jest ciąg znaków złożony z argumentów. Zwraca NULL, jeśli którykolwiek z argumentów ma wartość NULL. Może przyjmować więcej niż 2 argumenty. Argumenty liczbowe są konwertowane na odpowiednie ciągi znaków.
Przykłady:
mysql> select CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> select CONCAT('My', NULL, 'QL');
-> NULL
mysql> select CONCAT(14.3);
-> '14.3'
Zobacz także CONCAT_WS().
string CONCAT_WS(separator string, str1 string, str2 string,...)
Łączy ciągi znaków podobnie do funkcji CONCAT(), ale z użyciem separatora, który jest wstawiany między argumenty-ciągi znaków. Jeśli separator ma wartość NULL, wynik również będzie NULL. Funkcja pomija inne argumenty, jeśli ich wartość to NULL.
Przykłady:
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'
Zobacz także CONCAT().
Funkcja zwraca długość ciągu znaków str.
Przykłady:
mysql> select LENGTH('text');
-> 4
Uwaga: znaki wielobajtowe są liczone przez funkcję CHAR_LENGTH().
Zobacz także OCTET_LENGTH(), CHAR_LENGTH(), CHARACTER_LENGTH().
integer OCTET_LENGTH(str string)
Funkcja zwraca długość ciągu znaków str.
Przykłady:
mysql> select OCTET_LENGTH('text');
-> 4
Uwaga: znaki wielobajtowe są liczone przez funkcję CHAR_LENGTH().
Zobacz także LENGTH(), CHAR_LENGTH(), CHARACTER_LENGTH().
integer CHAR_LENGTH(str string)
Funkcja zwraca długość ciągu znaków str. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select CHAR_LENGTH('text');
-> 4
Zobacz także LENGTH(), OCTET_LENGTH(), CHARACTER_LENGTH().
integer CHARACTER_LENGTH(str string)
Funkcja zwraca długość ciągu znaków str.
Przykłady:
mysql> select CHARACTER_LENGTH('text');
-> 4
Uwaga: znaki wielobajtowe są liczone przez funkcję CHAR_LENGTH().
Zobacz także LENGTH(), OCTET_LENGTH(), CHAR_LENGTH().
integer POSITION(substr string IN str string)
Zwraca pozycję pierwszego wystąpienia podciągu substr w ciągu znaków str. Zwraca 0, jeśli substr nie zostanie znaleziony w ciągu znaków str. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select POSITION('bar', 'foobarbar');
-> 4
mysql> select POSITION('xbar', 'foobar');
-> 0
Zobacz także INSTR().
integer LOCATE(substr string, str string, pos integer)
LOCATE(substr string, str string) zwraca pozycję pierwszego wystąpienia podciągu substr w ciągu str. Zwraca 0, jeśli substr nie zostanie znaleziony w ciągu str. LOCATE(substr string, str string, pos integer) zwraca pozycję pierwszego wystąpienia podciągu substr w ciągu str, zaczynając od pozycji pos. Zwraca 0, jeśli substr nie zostanie znaleziony w ciągu str (z uwzględnieniem pozycji, oczywiście). Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select LOCATE('bar', 'foobarbar',5);
-> 7
mysql> select LOCATE('bar', 'foobarbar');
-> 4
mysql> select LOCATE('xbar', 'foobar');
-> 0
Zobacz również INSTR(), POSITION().
integer INSTR( str string, substr string)
Zwraca pozycję pierwszego wystąpienia podciągu substr w ciągu str. Zwraca 0, jeśli substr nie zostanie znaleziony w ciągu str (z uwzględnieniem pozycji, oczywiście). Obsługuje znaki wielobajtowe. Odpowiednik LOCATE(), z zamienionymi argumentami.
Przykłady:
mysql> select INSTR('foobarbar', 'bar');
-> 4
mysql> select INSTR('xbar', 'foobar');
-> 0
Zobacz również LOCATE(), POSITION().
string LPAD( str string, len integer, padstr string)
Zwraca ciąg str, dodając na początek ciągu str ciąg padstr i dostosowując całkowitą liczbę znaków w zwracanym ciągu do wartości len. Jeśli len jest większe niż suma długości ciągów, różnica jest uzupełniana przez powtarzanie ciągu padstr.
Przykłady:
mysql> select LPAD('hi',4,'??');
-> '??hi'
Zobacz również RPAD().
string RPAD( str string, len integer, padstr string)
Zwraca ciąg str, dodając na koniec ciągu str ciąg padstr i dostosowując całkowitą liczbę znaków w zwracanym ciągu do wartości len. Jeśli len jest większe niż suma długości ciągów, różnica jest uzupełniana przez powtarzanie ciągu padstr.
Przykłady:
mysql> select RPAD('hi',5,'?');
-> 'hi???'
Zobacz również LPAD().
string LEFT( str string, len integer)
Zwraca pierwsze len znaków z ciągu str. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select LEFT('foobarbar', 5);
-> 'fooba'
Zobacz również RIGHT(), SUBSTRING(), MID(), SUBSTRING_INDEX()
string RIGHT( str string, len integer)
Zwraca ostatnie len znaków z ciągu str. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select RIGHT('foobarbar', 4);
-> 'rbar'
Zobacz również LEFT(), SUBSTRING(), MID(), SUBSTRING_INDEX().
string SUBSTRING( str string, pos integer, len integer )
string SUBSTRING(str string FROM pos integer FOR len integer)
Zwraca podciąg ciągu str o długości len znaków, zaczynający się od pozycji pos. Obsługuje znaki wielobajtowe. Wersja z „FROM” jest używana w składni ANSI SQL92. W funkcji SUBSTRING(), jeśli nie podano argumentu len, zwracany jest cały podciąg ciągu str zaczynający się od pozycji pos.
Przykłady:
mysql> select SUBSTRING('Quadratically',5,6);
-> 'ratica'
mysql> select SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> select SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
Zobacz również LEFT(), RIGHT(), SUBSTRING_INDEX().
string MID(str string, pos integer, len integer)
Zwraca podciąg ciągu str o długości len znaków, zaczynający się od pozycji pos. Obsługuje znaki wielobajtowe. Wersja z „FROM” jest używana w składni ANSI SQL92. W funkcji SUBSTRING(), jeśli nie podano argumentu len, zwracany jest cały podciąg ciągu str zaczynający się od pozycji pos.
Przykłady:
mysql> select MID('Quadratically',5,6);
-> 'ratica'
mysql> select MID('Quadratically',5);
-> 'ratically'
mysql> select MID('foobarbar' FROM 4);
-> 'barbar'
Zobacz również LEFT(), RIGHT(), SUBSTRING_INDEX().
string SUBSTRING_INDEX( str string, delim string, count integer)
Zwraca cały podciąg ciągu str od początku do pozycji określonej przez separator delim, licząc od początku (count).
Przykłady:
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
Zobacz również LEFT(), SUBSTRING(), MID(), RIGHT().
Zwraca ciąg str z usuniętymi spacjami z początku ciągu. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select LTRIM(' barbar');
-> 'barbar'
Zobacz również TRIM(), RTRIM().
Zwraca ciąg str z usuniętymi spacjami z końca ciągu. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select RTRIM('barbar ');
-> 'barbar'
Zobacz również TRIM(), LTRIM().
string TRIM( [[BOTH | LEADING | TRAILING] [remstr] string FROM] str string )
Dla jednego argumentu „str” – zwraca ciąg str z usuniętymi spacjami z obu końców ciągu. Argument „remstr” określa znak/podciąg do usunięcia. Obsługuje znaki wielobajtowe. mysql> select TRIM(' bar '); -> 'bar'
Przykłady:
mysql> select TRIM(' bar ');
-> 'bar'
mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
Zobacz również RTRIM(), LTRIM().
Oblicza klucz soundex dla str. Klucz soundex ma tę właściwość, że słowa wymawiane tak samo mają ten sam klucz soundex, co może być wykorzystane do korekty wyników wyszukiwania. Zwraca ciąg o długości 4 znaków, zaczynający się literą A-Z.
Przykłady:
mysql> select SOUNDEX('Hello');
-> 'H400'
mysql> select SOUNDEX('Quadratically');
-> 'Q36324'
Zwraca ciąg znaków składający się z N spacji.
Przykłady:
mysql> select SPACE(6);
-> ' '
Zobacz również REPEAT().
string REPLACE( str string, from_str string, to_str string)
Zwraca ciąg znaków str, zastępując w nim wszystkie podciągi from_str na to_str. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select REPLACE('www.websupport.maryan.com.ua', 'w', 'Ww');
-> 'WwWwWw.Wwebsupport.maryan.com.ua'
string REPEAT( str string, count integer)
Zwraca ciąg znaków złożony z powtórzeń ciągu str count razy. Zwraca NULL, jeśli którykolwiek z argumentów ma wartość NULL.
Przykłady:
mysql> select REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
Zobacz również SPACE().
Zwraca ciąg znaków, w którym wszystkie znaki są odwrócone (od ostatniego do pierwszego). Zobacz przykład. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select REVERSE('abc');
-> 'cba'
string INSERT( str string, pos integer, len integer, newstr string )
Zwraca ciąg znaków str z wstawionym podciągiem newstr, zaczynając od pozycji pos w ciągu str i zastępując len znaków. Obsługuje znaki wielobajtowe.
Przykłady:
mysql> select INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
string ELT( N integer, str1 string, str2 string, str3 string,...)
Zwraca str1, jeśli N = 1, str2, jeśli N = 2, itd. Zwraca NULL, jeśli N jest mniejsze niż 1 lub większe niż liczba argumentów.
Przykłady:
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
Zobacz również FIELD().
integer FIELD( str string, str1 string, str2 string, str3 string,...)
Zwraca indeks (numer porządkowy) ciągu str z listy ciągów str1, str2, str3, ... . Zwraca 0, jeśli str nie zostanie znaleziona na liście.
Przykłady:
mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2
mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
Zobacz również ELT().
integer FIND_IN_SET( str string, strlist string )
Zwraca wartość od 1 do ..., w zależności od pozycji ciągu str wśród ciągów (podciągów) w ciągu strlist. Ciągi (podciągi) w strlist są oddzielone przecinkami ",". Zwraca 0, jeśli str nie zostanie znaleziona wśród ciągów w strlist. Zwraca NULL, jeśli którykolwiek z argumentów ma wartość NULL.
Przykłady:
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
Zobacz również MAKE_SET().
string MAKE_SET( bits, str1 string , str2 string ,...)
Zwraca jeden z argumentów ciągów znaków w zależności od stanu bitowego bits. str1 zostanie zwrócony dla bitu 0, str2 dla bitu 1, itd.
Przykłady:
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');
-> ''
Zobacz również ELT(), FIND_IN_SET().
string EXPORT_SET( bits, on string , off string, [separator char, [number_of_bits integer]])
Zwraca ciąg znaków, w którym dla każdego bitu wyświetlany jest stan on lub off. Stany są oddzielone separatorem .
Przykłady:
mysql> select EXPORT_SET(5,'Y','N',',',4)
-> Y,N,Y,N
string LCASE( str string ) string
Zwraca ciąg znaków str, zamieniając w nim wszystkie wielkie litery na małe. Obsługuje znaki wielobajtowe. (Domyślnie ISO-8859-1 Latin1).
Przykłady:
mysql> select LCASE('QUADRATICALLY');
-> 'quadratically'
Zobacz również UCASE(), UPPER(), LCASE(), LOWER().
Zwraca ciąg znaków str, zamieniając w nim wszystkie wielkie litery na małe. Obsługuje znaki wielobajtowe. (Domyślnie ISO-8859-1 Latin1).
Przykłady:
mysql> select LOWER('QUADRATICALLY');
-> 'quadratically'
Zobacz również UCASE(), UPPER(), LCASE(), LOWER().
Zwraca ciąg znaków str, zamieniając w nim wszystkie małe litery na wielkie. Obsługuje znaki wielobajtowe. (Domyślnie ISO-8859-1 Latin1).
Przykłady:
mysql> select UCASE('Hej');
-> 'HEJ'
Zobacz również UCASE(), UPPER(), LCASE(), LOWER().
Zwraca ciąg znaków str, zamieniając w nim wszystkie małe litery na wielkie. Obsługuje znaki wielobajtowe. (Domyślnie ISO-8859-1 Latin1).
Przykłady:
mysql> select UPPER('Hej');
-> 'HEJ'
Zobacz również UCASE(), UPPER(), LCASE(), LOWER().
string LOAD_FILE( file_name string )
Odczytuje plik i zwraca jego zawartość jako ciąg znaków. file_name jest pełną ścieżką do pliku na serwerze. Należy upewnić się, że plik fizycznie istnieje i że skrypt ma odpowiednie uprawnienia dostępu do niego. Rozmiar pliku nie może przekraczać wartości ustawionej w parametrze max_allowed_packet. W przypadku wystąpienia problemów (np. brak pliku) zwraca NULL.
