Óðîê 6.6: Ñòðîêîâûå ôóíêöèè â MySQL
Ãëàâíàÿ Ñòðàíèöà » Êíèãè ïî PHP » MySQL óðîêè äëÿ íà÷èíàþùèõ ñ íóëÿ » Ñòðîêîâûå ôóíêöèè â MySQL
Ñòðîêîâûå ôóíêöèè âîçâðàùàþò NULL, åñëè äëèíà ðåçóëüòàòà áîëüøàÿ, ÷åì ïàðàìåòð ñåðâåðà max_allowed_packet.
Äëÿ ôóíêöèé, êîòîðûå îïåðèðóþò ïîçèöèÿìè â ñòðîêå, ïåðâàÿ ïîçèöèÿ âñåãäà ïðîíóìåðîâàíà êàê 1, à íå 0.
ASCII(str)
Âîçâðàùàåò ASCII-êîä êðàéíåãî ëåâîãî ñèìâîëà ñòðîêè str. Âåðíåò 0, åñëè str ïóñòàÿ. Âåðíåò NULL, åñëè str ðàâíà NULL:
mysql> select ASCII("2");
-> 50.
mysql> select ASCII(2);
->50
mysql> select ASCII("dx");
-> 100
ORD(str)
Åñëè êðàéíèé ëåâûé ñèìâîë ñòðîêè str ïðåäñòàâëÿåò ñîáîé ìíîãîáàéòíûé ñèìâîë, âîçâðàùàåò êîä ñèìâîëà, âîçâðàùàÿ ASCII-çíà÷åíèå êîäà ñèìâîëà â ôîðìàòå: ((ïåðâûé áàéò ASCII-êîäà)*256 + (âòîðîé áàéò ASCII-êîäà))[*256 + òðåòèé áàéò ASCII-êîäà +...]. Åñëè êðàéíèé ëåâûé ñèìâîë íå ÿâëÿåòñÿ ìíîãîáàéòíûì, äåéñòâóåò àíàëîãè÷íî ôóíêöèè ASCII():
mysql> select ORD("2");
-> 50
(N, from_base, to_base).
Ïðåîáðàçîâûâàåò ÷èñëà ìåæäó ðàçëè÷íûìè ñèñòåìàìè ñ÷èñëåíèÿ. Âîçâðàùàåò ñòðîêîâîå ïðåäñòàâëåíèå ÷èñëà N, ïðåîáðàçîâàííîãî èç from_base â to_base. Âåðíåò NULL, åñëè ëþáîé ïàðàìåòð ðàâåí NULL.
Ïàðàìåòð N èíòåðïðåòèðóåòñÿ êàê öåëîå ÷èñëî, íî ìîæåò áûòü îïðåäåëåí êàê öåëîå ÷èñëî èëè ñòðîêà. Ìèíèìàëüíàÿ ñèñòåìà èñ÷èñëåíèÿ - 2, ìàêñèìàëüíàÿ - 36. Åñëè to_base - îòðèöàòåëüíîå çíà÷åíèå, N áóäåò ðàñöåíåíî êàê ÷èñëî ñî çíàêîì. Èíà÷å N îáðàáàòûâàåòñÿ êàê ÷èñëî áåç çíàêà. Âûçîâ CONV âñåãäà ðàáîòàåò ñ 64-ðàçðÿäíîé òî÷íîñòüþ:
mysql> select CONV(«a»,16,2);
-> ”1010"
mysql> select CONV(«6E»,18,8);
-> "172"
mysql> select C0NV(-17,10,-18);
-> "-H"
mysql> select CONV(10+»10"+'10'+0xa,10,10);
-> "40"
BIN(N)
Âîçâðàùàåò ñòðîêîâîå ïðåäñòàâëåíèå äâîè÷íîãî çíà÷åíèÿ N, ãäå N ïðåäñòàâëÿåò ñîáîé ÷èñëî òèïà longlong (BIGINT). Ýòî ýêâèâàëåíòíî CONV(N,10,2). Âîçâðàùàåò NULL, åñëè N ðàâíî NULL:
mysql> select BIN(12);
-> “1100"
OCT(N)
Âîçâðàùàåò ñòðîêîâîå ïðåäñòàâëåíèå âîñüìåðè÷íîãî çíà÷åíèÿ N, ãäå N ïðåäñòàâëÿåò ñîáîé ÷èñëî òèïà longlong (BIGINT). Ýòî ýêâèâàëåíòíî C0NV(N,10,8). Âîçâðàùàåò NULL, åñëè N ðàâíî NULL:
mysql> select OCT(12);
-> "14"
HEX(N)
Âîçâðàùàåò ñòðîêîâîå ïðåäñòàâëåíèå øåñòíàäöàòåðè÷íîãî çíà÷åíèÿ N, ãäå N ïðåäñòàâëÿåò ñîáîé ÷èñëî òèïà longlong (BIGINT). Ýòî ýêâèâàëåíòíî CONV (N,10,16). Âîçâðàùàåò NULL, åñëè N ðàâíî NULL:
mysql> select ÍÅÕ(255);
-> "FF"
CHAR(N,. . .).
CHAR() èíòåðïðåòèðóþò ïàðàìåòðû êàê öåëûå ÷èñëà è âîçâðàùàåò ñòðîêó, ñîñòîÿùóþ èç ñèìâîëîâ, çàäàííûõ çíà÷åíèÿìè ASCII-êîäîâ èç òåõ öåëûõ ÷èñåë. Çíà÷åíèÿ NULL áóäóò ïðîïóùåíû:
mysql> select CHAR(77,121,83,81,'76');
-> "MySQL"
mysql> select CHAR(77,77.3,'77.3');
-> "ÌÌÌ"
CONCAT(str1,str2,...).
Âîçâðàùàåò ñòðîêó, êîòîðàÿ ñëåäóåò èç ñâÿçûâàíèÿ ïàðàìåòðîâ. Âîçâðàùàåò NULL, åñëè ëþáîé ïàðàìåòð NULL. Ìîæåò èìåòü áîëüøå, ÷åì 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,...).
CONCAT_WS() ðàñøèôðîâûâàåòñÿ êàê CONCAT With Separator (ñëèÿíèå ñ ðàçäåëèòåëåì) è ïðåäñòàâëÿåò ñîáîé ñïåöèàëüíóþ ôîðìó ôóíêöèè CONCAT(). Ïåðâûé ïàðàìåòð çàäàåò ðàçäåëèòåëü äëÿ îñòàëüíîé ÷àñòè ïàðàìåòðîâ. Ðàçäåëèòåëü ìîæåò áûòü ñòðîêîé òàê æå, êàê è îñòàëüíàÿ ÷àñòü ïàðàìåòðîâ. Åñëè ðàçäåëèòåëü ðàâåí NULL, ðåçóëüòàò ïðåâðàòèòñÿ â NULL. Ðàçäåëèòåëü áóäåò äîáàâëåí ìåæäó ñòðîêàìè, êîòîðûå íóæíî îáúåäèíèòü â îäíó öåëóþ:
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"
LENGTH (str), OCTET_LENGTH(str), CHAR_LENGTH(str) è CHARACTER_LENGTH(str)
Âîçâðàùàþò äëèíó ñòðîêè str:
mysql> select LENGTH("text");
-> 4
mysql> select OCTET_LENGTH("text");
-> 4
Îáðàòèòå âíèìàíèå, ÷òî äëÿ CHAR_LENGTH() ëþáîé ìíîãîáàéòíûé ñèìâîë ñ÷èòàåòñÿ îäíèì.
LOCATE(substr,str), POSITION(substr IN str), LOCATE(substr,str) èëè POSITION(substr IN str)
Âîçâðàùàåò ïîçèöèþ ïåðâîãî ìåñòîíàõîæäåíèÿ ïîäñòðîêè substr â ñòðîêå str. Åñëè íå íàøëà substr â str, âåðíåò 0:
mysql> select LOCATE("bar", "foobarbar");
-> 4
mysql> select LOCATE("xbar", "foobar");
-> 0
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
LOCATE(substr,str,pos).
Âîçâðàùàåò ïîçèöèþ ïåðâîãî ìåñòîíàõîæäåíèÿ ïîäñòðîêè substr â ñòðîêå str, ïîñëå ïîçèöèè pos. Åñëè íå íàøëà substr â str, âåðíåò 0:
mysql> select LOCATE("bar", "foobarbar",5);
-> 7
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
INSTR(str,substr)
Àíàëîã LOCATE(), íî ñ ïåðåñòàâëåííûìè ïàðàìåòðàìè:
mysql> select INSTR("foobarbar", "bar");
-> 4
mysql> select INSTR("xbar", "foobar");
-> 0
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
LPAD(str,len,padstr)
Âîçâðàùàåò ñòðîêó str, äîïîëíåííóþ ñëåâà ñòðîêîé padstr. Ìàêñèìàëüíàÿ äëèíà str ðàâíà len ñèìâîëàì. Åñëè str äëèííåå, ÷åì len, îíà áóäåò óðåçàíà äî len ñèìâîëîâ. Åñëè str êîðî÷å, ÷åì len ñèìâîëû, padstr áóäåò ïðèïèñàíà íåñêîëüêî ðàç.
mysql> select LPAD("hi",4,'??');
-> "??hi"
RPAD (str,len,padstr)
Àíàëîãè÷íî LPAD(str,len,padstr), íî ñòðîêà padstr ïðèïèñûâàåòñÿ ñïðàâà.
mysql> select RPAD("hi",5,'?');
-> "hi???"
LEFT(str,len)
Âîçâðàùàåò len êðàéíèõ ëåâûõ ñèìâîëîâ èç ñòðîêè str:
mysql> select LEFT(“foobarbar", 5);
-> "fooba"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
RIGHT(str,len)
Âîçâðàùàåò len êðàéíèõ ïðàâûõ ñèìâîëîâ èç ñòðîêè str:
mysql> select RIGHT("foobarbar", 4);
-> "rbar"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len) èëè MID(str,pos,len)
Âîçâðàùàåò ïîäñòðîêó äëèíîé â len ñèìâîëîâ èç ñòðîêè str, íà÷èíàÿ ñ ïîçèöèè pos. Èíàÿ ôîðìà, êîòîðàÿ èñïîëüçóåò ñèíòàêñèñ FROM èç ANSI SQL92:
mysql> select SUBSTRING("Quadratically",5,6);
-> "ratica"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
SUBSTRING(str,pos) èëè SUBSTRING(str FROM pos)
Âîçâðàùàåò ïîäñòðîêó èç ñòðîêè str, íà÷èíàÿ ñ ïîçèöèè pos:
mysql> select SUBSTRING("Quadratically",5);
-> "ratically"
mysql> select SUBSTRING("foobarbar" FROM 4);
-> "barbar"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
SUBSTRING_INDEX(str,delim,count)
Âîçâðàùàåò ïîäñòðîêó èç ñòðîêè str, îòñòóïèâ count ñèìâîëîâ îò ðàçäåëèòåëÿ delim. Åñëè count ïîëîæèòåëåí, âåðíóòñÿ âñå çíà÷åíèÿ ëåâåå ðàçäåëèòåëÿ. Åñëè count îòðèöàòåëåí, âåðíóòñÿ âñå çíà÷åíèÿ ïðàâåå çàäàííîãî ðàçäåëèòåëÿ:
mysql> select SUBSTRING_INDEX("www.mysql.com", ".", 2);
-> "www.mysql"
mysql> select SUBSTRING_INDEX(www.mysql.com", ".", -2);
-> "mysql.com"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
LTRIM(str)
Âîçâðàùàåò ñòðîêó str ñ óäàëåííûìè âåäóùèìè ïðîáåëàìè:
mysql> select LTRIM(" barbar");
-> "barbar"
RTRIM(str)
Âîçâðàùàåò ñòðîêó str ñ óäàëåííûìè êîíå÷íûìè ïðîáåëàìè:
mysql> select RTRIM("barbar ");
-> "barbar"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
TRIM([[BOTH|LEADING|TRAILING] [remstr] FROM] str)
Âîçâðàùàåò ñòðîêó str, èç êîòîðîé óäàëåíû âñå ïðåôèêñû è ñóôôèêñû remstr. Åñëè íè îäèí èç ñïåöèôèêàòîðîâ BOTH, LEADING èëè TRAILING íå çàäàí, ïðèíèìàåòñÿ BOTH. Åñëè íå çàäàí ïàðàìåòð remstr, áóäóò óäàëåíû ïðîáåëû. Ïàðàìåòð LEADING îïðåäåëÿåò ïðåôèêñû, TRAILING ñóôôèêñû, a BOTH âñå ñðàçó:
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"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
SOUNDEX(str)
Âîçâðàùàåò soundex-ñòðîêó èç ñòðîêè str. Ýòî íåêèé ïîäâèä êîäèðîâêè ñòðîê, â îáùåì ïðèãîäíûé äëÿ ïðîâåðêè ñõîäñòâà äàííûõ. Äâå ñòðîêè, êîòîðûå çâó÷àò ïî÷òè îäèíàêîâî, äîëæíû èìåòü èäåíòè÷íûå soundex-ñòðîêè.
Ñòàíäàðòíàÿ soundex-ñòðîêà â äëèíó ñîñòàâëÿåò 4 ñèìâîëà, íî ôóíêöèÿ SOUNDEX() âîçâðàùàåò ïðîèçâîëüíî äëèííóþ ñòðîêó. Âû ìîæåòå èñïîëüçîâàòü SUBSTRING() íà ðåçóëüòàòå, ÷òîáû ïîëó÷èòü ñòàíäàðòíóþ soundex-ñòðîêó. Âñå íå àëôàâèòíî-öèôðîâûå ñèìâîëû èãíîðèðóþòñÿ â äàííîé ñòðîêå. Âñå ìåæäóíàðîäíûå àëôàâèòíûå ñèìâîëû âíå äèàïàçîíà A-Z îáðàáàòûâàþòñÿ êàê ãëàñíûå:
mysql> select SOUNDEX("Hello");
-> "H400"
mysql> select SOUNDEX("Quadratically");
-> "Q36324"
SPACE(N)
Âîçâðàùàåò ñòðîêó, ñîñòîÿùóþ èç N-ïðîáåëîâ:
mysql> select SPACE(6);
-> " "
REPLACE(str, from_str, to_str)
Âîçâðàùàåò ñòðîêó str, ãäå âñå âõîæäåíèÿ ïîäñòðîêè from_str çàìåíåíû íà ïîäñòðîêó to_str:
mysql> select REPLACE("www.mysql.com", "w", "Ww");
-> "WwWwWw.mysql.com"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
REPEAT(str, count)
Âîçâðàùàåò ñòðîêó, ñîñòîÿùóþ èç ââîäíîé ñòðîêè str, ïîâòîðåííîé count ðàç. Åñëè count <=0, âîçâðàùàåò ïóñòóþ ñòðîêó. Åñëè str èëè count ðàâíû NULL, âåðíåò NULL:
mysql> select REPEAT("MySQL", 3);
-> "MySQLMySQLMySQL"
REVERSE(Str)
Âîçâðàùàåò ñòðîêó str ñ îáðàùåííûì ïîðÿäêîì ñèìâîëîâ:
mysql> select REVERSE("abc");
-> "cba"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
INSERT(str, pos, len, newstr)
Âîçâðàùàåò ñòðîêó str ñ ïîäñòðîêîé, íà÷èíàþùåéñÿ â ïîçèöèè pos è äëèíîé â len ñèìâîëîâ, çàìåíåííîé íà ñòðîêó newstr:
mysql> select INSERT("Quadratic", 3, 4, "What");
-> "QuWhattic"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
ELT(N,str1,str2,str3,...)
Âîçâðàùàåò str1, åñëè N=1, str2, åñëè N=2 è òàê äàëåå. Âîçâðàùàåò NULL, åñëè N ìåíüøå, ÷åì 1, èëè áîëüøå, ÷åì ÷èñëî ïàðàìåòðîâ. ELT() äîïîëíÿåò ôóíêöèþ FIELD(), ðàññìîòðåííóþ íèæå:
mysql> select ELT(1, "ej", "Heja", "hej", "foo");
-> "ej"
mysql> select ELT(4, "ej", "Heja", "hej", "foo");
-> "foo"
FIELD(str,str1,str2,str3,...)
Âîçâðàùàåò èíäåêñ str â ñïèñêå str1, str2, str3 Âåðíåò 0, åñëè str íå íàéäåíà. FIELD() äîïîëíÿåò ôóíêöèþ ELT():
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)
Âîçâðàùàåò çíà÷åíèå îò 1 äî N, åñëè ñòðîêà str íàõîäèòñÿ â ñïèñêå strlist, ñîñòîÿùåì èç N ïîäñòðîê. Ñïèñîê ñòðîê ïðåäñòàâëÿåò ñîáîé ñòðîêó, ñîñòàâëåííóþ èç ïîäñòðîê, îòäåëÿåìûõ ñèìâîëîì çàïÿòîé (,).
Åñëè ïåðâûé ïàðàìåòð ïðåäñòàâëÿåò ñîáîé ïîñòîÿííóþ ñòðîêó, à âòîðîé ñòîëáåö òèïà SET, òî ôóíêöèÿ FIND_IN_SET() îïòèìèçèðîâàíà, ÷òîáû èñïîëüçîâàòü ðàçðÿäíóþ àðèôìåòèêó. Âîçâðàùàåòñÿ 0, åñëè str íå â strlist èëè strlist ÿâëÿåòñÿ ïóñòîé ñòðîêîé. Âîçâðàùàåò NULL, åñëè ëþáîé ïàðàìåòð NULL. Ýòà ôóíêöèÿ íå áóäåò ðàáîòàòü ïðàâèëüíî, åñëè ïåðâûé ïàðàìåòð ñîäåðæèò çàïÿòóþ:
mysql> SELECT FIND_IN_SET(“b",'a,b,c,d');
-> 2
MAKE_SET (bits, str1 str2, ...)
Âîçâðàùàåò ñòðîêó, ñîäåðæàùóþ ïîäñòðîêè, îòäåëÿåìûå çàïÿòîé (,), ñîñòîÿùóþ èç ñòðîê, êîòîðûå èìåþò ñîîòâåòñòâóþùèé áèò â íàáîðå bits.str1 ñîîòâåòñòâóåò áèòó 0, str2 áèòó 1 èòàê äàëåå. NULL â str1, str2, ... íå ïîïàäóò â ðåçóëüòàò:
mysql> SELECT MAKE_SET(1,'à','b','ñ');
-> "à"
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]])
Âîçâðàùàåò ñòðîêó, ãäå äëÿ êàæäîãî áèòà, óñòàíîâëåííîãî â íàáîðå bit, âû ïîëó÷èòå ñòðîêó, çàäàííóþ ïàðàìåòðîì on, à äëÿ êàæäîãî íåóñòàíîâëåííîãî, ñîîòâåòñòâåííî, ñòðîêó, îïðåäåëåííóþ ïàðàìåòðîì off. Êàæäàÿ ñòðîêà îòäåëÿåòñÿ îò äðóãèõ ðàçäåëèòåëåì (ïàðàìåòð separator, ïî óìîë÷àíèþ ýòî çàïÿòàÿ) è èñïîëüçóåòñÿ òîëüêî “number_of_bits” áèò (ïî óìîë÷àíèþ 64):
mysql> select EXPORT_SET(5,'Ó','N',',’,4)
-> Y,N,Y,N
LCASE(Str) È LOWER(str)
Âîçâðàùàåò ñòðîêó str ñî âñåìè ñèìâîëàìè, èçìåíåííûìè íà íèæíèé ðåãèñòð ñîãëàñíî òåêóùåìó îòîáðàæåíèþ íàáîðà ñèìâîëîâ (çíà÷åíèå ïî óìîë÷àíèþ: ISO-8859-1 Latin1):
mysql> select LCASE("QUADRATICALLY");
-> "quadratically"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
UCASE(str) è UPPER(str)
Âîçâðàùàåò ñòðîêó str ñî âñåìè ñèìâîëàìè, èçìåíåííûìè íà âåðõíèé ðåãèñòð ñîãëàñíî òåêóùåìó îòîáðàæåíèþ íàáîðà ñèìâîëîâ (çíà÷åíèå ïî óìîë÷àíèþ: ISO-8859-1 Latin1):
mysql> select UCASE("Hej");
-> "HEJ"
Ïîääåðæèâàþòñÿ ìíîãîáàéòíûå ñèìâîëû.
LOAD_FILE(file_name)
×èòàåò ôàéë è âîçâðàùàåò ñîäåðæàíèå ôàéëà êàê ñòðîêó. Ôàéë äîëæåí áûòü íà ñåðâåðå (íå íà êëèåíòñêîé ñèñòåìå!), âû äîëæíû îïðåäåëèòü ïîëíîå èìÿ ôàéëà è èìåòü ïðèâèëåãèþ file (ïðèâèëåãèè áóäóò ðàññìîòðåíû ïîçæå, ïîêà âàì äîñòàòî÷íî çíàòü ëèøü òî, ÷òî òàêàÿ ïðèâèëåãèÿ íåîáõîäèìà äëÿ ðàáîòû ñ ýòîé ôóíêöèåé). Ôàéë äîëæåí áûòü ÷èòàåì âñåìè è áûòü ìåíüøå, ÷åì max_allowed_packet. Åñëè ôàéëà íå ñóùåñòâóåò èëè îí íå ÷èòàåòñÿ ïî îäíîé èç âûøåóïîìÿíóòûõ ïðè÷èí, ôóíêöèÿ âîçâðàòèò NULL:
mysql> UPDATE table_name SET blob_column=LOAD_FILE(«/tmp/picture») WHERE id=1;
MySQL ïî ìåðå íåîáõîäèìîñòè àâòîìàòè÷åñêè ïðåîáðàçóåò ÷èñëà â ñòðîêè è íàîáîðîò:
mysql> SELECT 1+»1";
-> 2
mysql> SELECT CONCAT(2,' test’);
-> “2 test”
Åñëè âû õîòèòå ïðåîáðàçîâûâàòü ÷èñëî â ñòðîêó ÿâíî, ïåðåäàéòå åãî êàê ïàðàìåòð ôóíêöèè CONCAT().
Åñëè ñòðîêîâàÿ ôóíêöèÿ ïîëó÷àåò äâîè÷íóþ ñòðîêó êàê ïàðàìåòð, âîçíèêàþùàÿ â ðåçóëüòàòå ñòðîêà òàêæå áóäåò äâîè÷íîé. ×èñëà, ïðåîáðàçîâàííûå â ñòðîêó, òàêæå îáðàáàòûâàþòñÿ êàê äâîè÷íûå ñòðîêè. Ýòî âàæíî òîëüêî äëÿ ñðàâíåíèé.



