Crmgo Blog

Mysql Rad sa stringovima

Mysql Rad sa stringovima

Rad sa ASCII nizovima (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 ili string, from_base…

Mysql Rad sa stringovima

Rad sa stringovima

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 )

Bilo koja funkcija za rad sa nizovima znakova vratiće NULL ako dužina rezultujućeg niza prelazi dužinu postavljenu parametrom servera max_allowed_packet.

 

integer ASCII(str niz znakova)

Vraća ASCII kod prvog levog znaka niza str. Vraća 0 ako je niz str prazan. Vraća NULL ako niz str ne postoji.

Primeri:

mysql> select ASCII('2');
        -> 50
mysql> select ASCII(2);
        -> 50
mysql> select ASCII('dx');
        -> 100

Vidi takođe ORD().

 

integer ORD(str niz znakova)

U slučaju da je prvi levi znak niza str više-bajtni, vraća njegov kod u formatu: ((prvi bajt ASCII kod)*256+(drugi bajt ASCII kod))[*256+treći bajt ASCII kod...].

Ako prvi levi znak niza str nije više-bajtni, tada se ponaša isto kao funkcija ASCII() - vraća ASCII kod prvog levog znaka niza str.

Primeri:

mysql> select ORD('2');
        -> 50

Vidi takođe ASCII().

 

niz znakova CONV(int_or_str integer ili niz znakova, from_base integer, to_base integer)

Moćna funkcija za konvertovanje broja (int_or_str) iz jednog sistema brojanja (from_base) u drugi sistem (to_base). Vraća NULL ako su argumenti NULL. Minimalna vrednost .._base je 2, maksimalna 36.

Primeri:

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'

Vidi takođe BIN(), OCT(), HEX().

 

niz znakova BIN(int integer)

Vraća binarnu vrednost argumenta int. Slično ponašanju CONV(int,10,2). Vraća NULL ako je argument int NULL.

Primeri:

mysql> select BIN(12);
        -> '1100'

Vidi takođe CONV().

 

niz znakova OCT(int integer)

Vraća oktalnu vrednost argumenta int. Slično ponašanju CONV(int,10,8). Vraća NULL ako je argument int NULL.

Primeri:

mysql> select OCT(12);
        -> '14'

Vidi takođe CONV().

 

niz znakova HEX(int_or_str niz znakova ili integer)

Vraća heksadecimalnu vrednost argumenta int_or_string. Slično ponašanju CONV(int,10,16). Vraća NULL ako je argument int_or_string NULL.

Primeri:

mysql> select HEX(255);
        -> 'FF'
mysql> select HEX("abc");
        -> 616263
mysql> select 0x616263;
        -> "abc"

Vidi takođe CONV().

 

niz znakova CHAR(int integer, ...)

Vraća niz znakova određen ASCII kodom/kodovima. Vrednost NULL se preskače.

Primeri:

mysql> select CHAR(77,121,83,81,'76');
        -> 'MySQL'
mysql> select CHAR(77,77.3,'77.3');
        -> 'MMM'

Vidi takođe ASCII(), ORD().

 

niz znakova CONCAT(str1 niz znakova, str2 niz znakova,...)

Spaja niske. Rezultat je niska sastavljena od argumenata. Vraća NULL ako je bilo koji od argumenata NULL. Može imati više od 2 argumenata. Numerički argumenti se konvertuju u odgovarajuće niske.

Primeri:

mysql> select CONCAT('My', 'S', 'QL');
        -> 'MySQL'
mysql> select CONCAT('My', NULL, 'QL');
        -> NULL
mysql> select CONCAT(14.3);
        -> '14.3'

Vidi takođe CONCAT_WS().

 

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

Spaja niske slično funkciji CONCAT(), ali sa razdvajačem separator koji se ubacuje između niska-argumenata. Ako je separator NULL, rezultat će biti NULL. Funkcija preskače druge argumente ako je njihova vrednost NULL.

Primeri:

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'

Vidi takođe CONCAT().

 

integer LENGTH(str string)

Funkcija vraća dužinu niske str.

Primeri:

mysql> select LENGTH('text');
        -> 4

Napomena: višebajtni znakovi se računaju funkcijom CHAR_LENGTH().

Vidi takođe OCTET_LENGTH(), CHAR_LENGTH(), CHARACTER_LENGTH().

 

integer OCTET_LENGTH(str string)

Funkcija vraća dužinu niske str.

Primeri:

mysql> select OCTET_LENGTH('text');
        -> 4

Napomena: višebajtni znakovi se računaju funkcijom CHAR_LENGTH().

Vidi takođe LENGTH(), CHAR_LENGTH(), CHARACTER_LENGTH().

 

integer CHAR_LENGTH(str string)

Funkcija vraća dužinu niske str. Podržava višebajtna znaka.

Primeri:

mysql> select CHAR_LENGTH('text');
        -> 4

Vidi takođe LENGTH(), OCTET_LENGTH(), CHARACTER_LENGTH().

 

integer CHARACTER_LENGTH(str string)

Funkcija vraća dužinu niske str.

Primeri:

mysql> select CHARACTER_LENGTH('text');
        -> 4

Napomena: višebajtni znakovi se računaju funkcijom CHAR_LENGTH().

Vidi takođe LENGTH(), OCTET_LENGTH(), CHAR_LENGTH().

 

integer POSITION(substr string IN str string)

Vraća poziciju prvog pojavljivanja podniske substr u nisci str. Vraća 0 ako substr nije pronađen u nisci str. Podržava višebajtna znaka.

Primeri:

mysql> select POSITION('bar', 'foobarbar');
        -> 4
mysql> select POSITION('xbar', 'foobar');
        -> 0

Vidi takođe INSTR().

 

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

LOCATE(substr string, str string) vraća poziciju prvog pojavljivanja podniza substr u stringu str. Vraća 0 ako substr nije pronađen u stringu str. LOCATE(substr string, str string, pos integer) vraća poziciju prvog pojavljivanja podniza substr u stringu str, ali počevši od pozicije pos. Vraća 0 ako substr nije pronađen u stringu str (uzimajući u obzir poziciju, naravno). Podržava višebajtne karaktere.

Primeri:

mysql> select LOCATE('bar', 'foobarbar',5);
        -> 7
mysql> select LOCATE('bar', 'foobarbar');
        -> 4
mysql> select LOCATE('xbar', 'foobar');
        -> 0

Vidi takođe INSTR(), POSITION().

 

integer INSTR( str string, substr string)

Vraća poziciju prvog pojavljivanja podniza substr u stringu str. Vraća 0 ako substr nije pronađen u stringu str (uzimajući u obzir poziciju, naravno). Podržava višebajtne karaktere. Analogno LOCATE(), samo su argumenti zamenjeni mestima.

Primeri:

mysql> select INSTR('foobarbar', 'bar');
        -> 4
mysql> select INSTR('xbar', 'foobar');
        -> 0

Vidi takođe LOCATE(), POSITION().

 

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

Vraća string str, dodajući na početak stringa str string padstr i dovodeći ukupan broj karaktera u vraćenom stringu na len. Ako je len veći od zbira dužina stringova, razlika se nadoknađuje ponavljanjem stringa padstr.

Primeri:

mysql> select LPAD('hi',4,'??');
        -> '??hi'

Vidi takođe RPAD().

 

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

Vraća string str, dodajući na kraj stringa str string padstr i dovodeći ukupan broj karaktera u vraćenom stringu na len. Ako je len veći od zbira dužina stringova, razlika se nadoknađuje ponavljanjem stringa padstr.

Primeri:

mysql> select RPAD('hi',5,'?');
        -> 'hi???'

Vidi takođe LPAD().

 

string LEFT( str string, len integer)

Vraća prvih len karaktera iz stringa str. Podržava višebajtne karaktere.

Primeri:

mysql> select LEFT('foobarbar', 5);
        -> 'fooba'

Vidi takođe RIGHT(), SUBSTRING(), MID(), SUBSTRING_INDEX()

 

string RIGHT( str string, len integer)

Vraća poslednjih len karaktera iz stringa str. Podržava višebajtne karaktere.

Primeri:

mysql> select RIGHT('foobarbar', 4);
        -> 'rbar'

Vidi takođe LEFT(), SUBSTRING(), MID(), SUBSTRING_INDEX().

 

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

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

Vraća podniz stringa str dužine len karaktera sa pozicije pos. Podržava višebajtne karaktere. Verzija sa "FROM" koristi se u ANSI SQL92 sintaksi. U funkciji SUBSTRING(), ako argument len nije naveden, vraća ceo podniz stringa str sa pozicije pos.

Primeri:

mysql> select SUBSTRING('Quadratically',5,6);
        -> 'ratica'
mysql> select SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> select SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'

Vidi takođe LEFT(), RIGHT(), SUBSTRING_INDEX().

 

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

Vraća podniz stringa str dužine len karaktera sa pozicije pos. Podržava višebajtne karaktere. Verzija sa "FROM" koristi se u ANSI SQL92 sintaksi. U funkciji SUBSTRING(), ako argument len nije naveden, vraća ceo podniz stringa str sa pozicije pos.

Primeri:

mysql> select MID('Quadratically',5,6);
        -> 'ratica'
mysql> select MID('Quadratically',5);
        -> 'ratically'
mysql> select MID('foobarbar' FROM 4);
        -> 'barbar'

Vidi takođe LEFT(), RIGHT(), SUBSTRING_INDEX().

 

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

Vraća ceo podniz stringa str od pozicije određene delimimiterom delim, koji je na mestu count.

Primeri:

mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

Vidi takođe LEFT(), SUBSTRING(), MID(), RIGHT().

 

string LTRIM( str string )

Vraća string str, uklanjajući razmake sa početka stringa. Podržava višebajtne karaktere.

Primeri:

mysql> select LTRIM('  barbar');
        -> 'barbar'

Vidi takođe TRIM(), RTRIM().

 

string RTRIM( str string )

Vraća string str, uklanjajući razmake sa kraja stringa. Podržava višebajtne karaktere.

Primeri:

mysql> select RTRIM('barbar   ');
        -> 'barbar'

Vidi takođe TRIM(), LTRIM().

 

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

S jednim argumentom "str" - vraća string str, uklanjajući razmake sa kraja stringa. Argument "remstr" definiše karakter/podniz za uklanjanje. Podržava višebajtne karaktere. mysql> select TRIM(' bar '); -> 'bar'

Primeri:

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'

Vidi takođe RTRIM(), LTRIM().

 

string SOUNDEX( str string )

Izračunava soundex ključ za str. Soundex ključ ima osobinu da reči koje se izgovaraju isto imaju isti soundex ključ, što se može koristiti za korekciju rezultata pretrage. Vraća string dužine 4 karaktera koji počinje slovom A-Z.

Primeri:

mysql> select SOUNDEX('Hello');
        -> 'H400'
mysql> select SOUNDEX('Quadratically');
        -> 'Q36324'

 

string SPACE( N integer )

Vraća niz koji se sastoji od N razmaka.

Primeri:

mysql> select SPACE(6);
        -> '      '

Vidi takođe REPEAT().

 

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

Vraća niz str, zamenjujući sve podnizove from_str sa to_str. Podržava višebajtna znaka.

Primeri:

mysql> select REPLACE('www.websupport.maryan.com.ua', 'w', 'Ww');
        -> 'WwWwWw.Wwebsupport.maryan.com.ua'

 

string REPEAT( str string, count integer)

Vraća niz koji se sastoji od niza str ponovljenog count puta. Vraća NULL ako je jedan od argumenata NULL.

Primeri:

mysql> select REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'

Vidi takođe SPACE().

 

string REVERSE( str string )

Vraća niz u kojem su svi znakovi obrnuti, od poslednjeg ka prvom. Vidi primer. Podržava višebajtna znaka.

Primeri:

mysql> select REVERSE('abc');
        -> 'cba'

 

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

Vraća niz str, sa umetanjem podniza newstr, počevši od pozicije pos u nizu str, dužine len znakova. Podržava višebajtna znaka.

Primeri:

mysql> select INSERT('Quadratic', 3, 4, 'What');
        -> 'QuWhattic'

 

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

Vraća str1 ako je N = 1, str2 ako je N = 2, i tako dalje. Vraća NULL ako je N manje od 1 ili veće od broja argumenata.

Primeri:

mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
        -> 'ej'
mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
        -> 'foo'

Vidi takođe FIELD().

 

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

Vraća indeks (redni broj) niza str iz liste nizova str1, str2, str3, ... . Vraća 0 ako str nije pronađena u listi.

Primeri:

mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -> 2
mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -> 0

Vidi takođe ELT().

 

integer FIND_IN_SET( str string, strlist string )

Vraća vrednost od 1 do ..., u zavisnosti od pozicije niza str među nizovima (podnizovima) u nizu strlist. Nizovi (podnizovi) u strlist su odvojeni znakom ",". Vraća 0 ako str nije pronađena među nizovima u strlist. Vraća NULL ako je jedan od argumenata NULL.

Primeri:

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2

Vidi takođe MAKE_SET().

 

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

Vraća jedan od nizova-argumenata u zavisnosti od bitnog stanja bits. str1 će biti vraćen za bit 0, str2 za bit 1, i tako dalje.

Primeri:

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');
        -> ''

Pogledajte takođe ELT(), FIND_IN_SET().

 

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

Vraća niz u kojem se za svaki bit prikazuje stanje on ili off. Stanja su odvojena separatorom .

Primeri:

mysql> select EXPORT_SET(5,'Y','N',',',4)
        -> Y,N,Y,N

 

string LCASE( str string ) string

Vraća niz str, zamenjujući u njemu sva velika slova malim. Podržava višebajtne karaktere.(Podrazumevano ISO-8859-1 Latin1).

Primeri:

mysql> select LCASE('QUADRATICALLY');
        -> 'quadratically'

Pogledajte takođe UCASE(), UPPER(), LCASE(), LOWER().

 

string LOWER( str string )

Vraća niz str, zamenjujući u njemu sva velika slova malim. Podržava višebajtne karaktere.(Podrazumevano ISO-8859-1 Latin1).

Primeri:

mysql> select LOWER('QUADRATICALLY');
        -> 'quadratically'

Pogledajte takođe UCASE(), UPPER(), LCASE(), LOWER().

 

string UCASE( str string )

Vraća niz str, zamenjujući u njemu sva mala slova velikim. Podržava višebajtne karaktere.(Podrazumevano ISO-8859-1 Latin1).

Primeri:

mysql> select UCASE('Hej');
        -> 'HEJ'

Pogledajte takođe UCASE(), UPPER(), LCASE(), LOWER().

 

string UPPER( str string )

Vraća niz str, zamenjujući u njemu sva mala slova velikim. Podržava višebajtne karaktere.(Podrazumevano ISO-8859-1 Latin1).

Primeri:

mysql> select UPPER('Hej');
        -> 'HEJ'

Pogledajte takođe UCASE(), UPPER(), LCASE(), LOWER().

 

string LOAD_FILE( file_name string )

Čita fajl i vraća njegov sadržaj kao niz. file_name je puni put do fajla na serveru. Potrebno je voditi računa o fizičkom postojanju samog fajla i odgovarajućim dozvolama skripte za pristup istom. Fajl ne sme biti veći od vrednosti postavljene parametrom max_allowed_packet. U slučaju problema (nedostatak fajla i sl.) vraća NULL.

Napomena: tekst može biti uz pomoć AI uz ljudsku proveru. Odgovoran: Dmytro Lomaka, Kaltenkirchen.