|
|
Funce pro práci s řetězciDnes pro vás mám něco málo o funkcích pro práci s řetězcem. Taktéž v anglickém originálu tuto položku naleznete.ASCII(text) Funkce vrací číselnou hodnotu prvního znaku vlevo v textu. Jestliže je vstupní hodnota NULL, vrací NULL. Nepracuje s multibajtem. select ASCII('dax');
ORD(text)Tato funkce je podobná funkci ASCII(), s tím rozdílem, že pracuje s multibajtovými řetězci. CONV(cislo, vstupni_soustava,vystupni_soustava) Funkce konveruje čísla mezi různými soustavami, od dvojkové až po šestatřicítkovou. To, jestli bude mínus vyjádřeno pomocí (-) nebo jestli bude "v čísle", lze ovlivnit přítomností/absencí znaménka (-) v názvu soustavy. select CONV(40,10,-18);BIN(int) - Vrací číslo v binární soustavě. OCT(int) - Vrací číslo v osmičkové soustavě. HEX(int) - Vrací číslo v šesnáctkové soustavě. CHAR(cislo1,cislo2,cislo3,...) Tato funkce vytvoří z daných čísel znaky. Výstupem je řetězec těchto znaků. NULL hodnoty ukončují překlad. Neceločíselné hodnoty jsou zaokrouhlovány na celá čísla. mysql> select CHAR(109,97,106,107,108,"115");CONCAT(text1,text2,text3,...) Funkce vrací sloučené řetězce, které jí byly předány jako parametry. V případě, že se mezi parametry objeví NULL řetězec, funkce vrací NULL. select CONCAT("My","SQL");
CONCAT_WS(text, text1,text2,...,textN)Tato funkce je podobná funkci CONCAT(), s tím, že řetězce spojuje pomocí řetězce text. Navíc produkuje výstup, i když se v parametrech objeví NULL. Pracuje podobně jako implode v PHP. mysql> select CONCAT_WS("+","Apache","MySQL","PHP");
BIT_LENGTH(retezec)Funkce vrací délku řetězce v bitech. Přidána v MySQL v. 4.0.2. LENGTH(retezec), OCTET_LENGTH(retezec), CHARACTER_LENGTH(retezec) Vrací délku řetězce v bajtech. Pokud chcete zjistit déku multibajtového řetězce, použijte raději CHAR_LENGTH. Jestliže má řetězec hodnotu NULL, vrací NULL. CHAR_LENGTH(retezec) Vrací počet znaků v řetězci. Funguje i pro multibajty. LOCATE(retezec,text), POSITION(retezec IN text), INSTR (text, retezec) Vrací 1. pozici řetězce retezec v textu text. Pozice je vrácena jako celočíselná hodnota. Funkce INSTR má na rozdíl od dvouargumentové verze LOCATE pouze prohozené argumenty. mb-safe. LOCATE(retezec,text,pos) Vrací 1. pozici řetězce retezec v textu text za pozicí pos. LPAD(str,len,padstr) Funkce zarovná řetězec zleva pomocí řetězce str. mysql> select LPAD("text",10,"aei");
RPAD(str,len,padstr)Funkce zarovná řetězec zprava pomocí řetězce str na délku len. LEFT(retezec,n) Vrací n znaků zleva. mb-safe. mysql> select LEFT("abcdefgh",4);
RIGHT(retezec,n)Vrací n znaků zprava. mb-safe. mysql> select RIGHT("abcdefgh",4);
SUBSTRING(str,pos[,len]), SUBSTRING(str FROM pos [FOR len])Funkce je podobná funkci substr() v PHP. Vrací část řetězce od pozice pos. Pokud je zadán parametr len, bude vrácen řetězec o délce len. mb-safe. select SUBSTRING("slovíčko",4);
SUBSTRING_INDEX(retezec,oddelovac, n)Vrací část řetězce retezec po místo, kde je nalezen n-tý výskyt řetězce oddelovac. Při záporné hodnotě jsou oddělovače počítány od prava. mb-safe. select SUBSTRING_INDEX("www.sua.bla.uf.cz",".",2);
LTRIM(str) - odstraní bílé znaky z leva od slova. mb-safe.RTRIM(str) - odstraní bílé znaky z prava od slova. mb-safe. mysql> select LTRIM(" toto je test");
TRIM([BOTH | LEADING | TRAILING] [retezec] FROM] str)Vrací řetězec str zbavený řetězce retezec (LEADING - zleva, TRAILING - zprava, BOTH - z obou stran). BOTH je výchozí. Jestliže není zadán retezec, pak jsou odstraňovány bílé znaky. mysql> select TRIM(" něco ");
SOUNDEX(retezec)Funkce vrací soundex řetězce. Znaky mimo a-z (tj. znaky s diakritikou, azbuka a další) jsou upraveny jako samohlásky. Pro lepší a podrobnější info o této funkci navštivte anglický MySQL manuál. SPACE(n) - Vrací n mezer. REPLACE(v_retezci, retezec, retezcem) Funkce nahradí výskyty řetězce retezec v řetězci v_retezci řetězcem retezcem. Je podobná PHPčkovské funkci str_replace. mb-safe. mysql> select REPLACE("Jablko je zelenina.","zelenina","ovoce");
REPEAT(retezec,n) - Opakuje retezec n-krát za sebou.mysql> select REPEAT("Test",3);
REVERSE(retezec) - Přečte retezec "pozpátku". mb-safe.
mysql> select REVERSE("Kobyla má malý bok");
INSERT(retezec,pozice,n, retezec_k_vlozeni)Vloží řetězec retezec_k_vlozeni od pozice, v původním řetězci smaže n znaků. retezec_k_vlozeni je vkládán celý, bez ohledu na n. mb-safe. mysql> select INSERT("Toto je test",6,2,"není");
ELT(n,retezec1,retezec2,retezec3,...) - Vrací řetězec, který je n-tý v
pořadí.FIELD( retezec, retezec1, retezec2, retezec3,...) - Vrací pořadí retezce mezi řetězci. Jestliže jej nenajde, vrací 0. Funkce je citlivá na velikost písmen. mysql> select ELT(2, "toto","je","test");FIND_IN_SET(retezec,seznam_retezcu) Najde retezec mezi řetězci v seznam_retezcu. Jednotlivé řetězce jsou odděleny čárkou. Při použití s typem set je funkce optimailzována pro bitovou aritmetiku. mysql> select FIND_IN_SET("t","t,a,k,j,o");
MAKE_SET(bity, retezec1, retezec2,...)Vrací set (řetězec obsahující řetězce oddělené čárkou) skládající se z řetězců vybraných pomocí bity.
mysql> select MAKE_SET(1 | 8,"toto","je","maly","testik");EXPORT_SET(bity,retezec_on,retezec_off,oddelovac,pocet_bitu) Funkce vytvoří SET, který bude dlouhý pocet_bitu (výchozí délka je 64 bitů), kde budou bity nastaveny na on. retezec_on představuje řetězec, který bude vrácen, když je bit nastaven na 1, oddelovac odděluje řetězce. mysql> select EXPORT_SET(1 | 8,"on","off",";",4);LCASE(retezec), LOWER(retezec) Konvertuje řetězec do malých písmen (podobné funci strtolower v PHP). mb-safe. Výchozí znaková stránka je ISO-8859-1. UCASE(retezec), UPPER(retezec) Konvertuje řetězec do velkých písmen (podobné funci strtoupper v PHP). mb-safe. Výchozí znaková stránka je ISO-8859-1. LOAD_FILE(soubor) Funkce načte soubor do řetězce. Příklad převzat z MySQL manuálu. mysql> UPDATE table_nameTak to je pro tento díl vše. mb-safe - Funkce umí pracovat s multibajtovými znaky (3.23.40). Komentáře ke článkuNový příspěvek |
| |||||||||||||||
Stránka vygenerována za 0.007983s, © Majkls, ICQ#: 162974419, optimalizováno pro: ELinks, Firefox, Operu, Konqueror. Špatně se zobrazují v IE. XHTML 1.0 valid. Powered by PřeTel