mysql 字元函式小結
挑選了一些日常中常用到的字元函式,整理了一下,供大家參考。
1、 ASCII(str)
返回值為字串str 的最左字元的數值。假如str為空字串,則返回值為 0 。假如str 為NULL,則返回值為 NULL。 ASCII()用於帶有從 0到255的數值的字元
mysql> select ascii('N');
+------------+
| ascii('N') |
+------------+
| 78 |
+------------+
1 row in set (0.00 sec)
mysql> select ascii('NULL');
+---------------+
| ascii('NULL') |
+---------------+
| 78 |
+---------------+
1 row in set (0.00 sec)
2、 BIN(N)
返回值為N的二進位制值的字串表示,其中 N 為一個longlong (BIGINT) 數字。這等同於 CONV(N,10,2)。假如N 為NULL,則返回值為 NULL
mysql> select bin(2);
+--------+
| bin(2) |
+--------+
| 10 |
+--------+
1 row in set (0.00 sec)
mysql> select bin(3);
+--------+
| bin(3) |
+--------+
| 11 |
+--------+
1 row in set (0.00 sec)
3、 BIT_LENGTH(str)
返回值為二進位制的字串str 長度
mysql> select bit_length('a');
+-----------------+
| bit_length('a') |
+-----------------+
| 8 |
+-----------------+
1 row in set (0.00 sec)
4、 CHAR_LENGTH(str)
返回值為字串str 的長度,長度的單位為字元。一個多位元組字元算作一個單字元。對於一個包含五個二位元組字符集, LENGTH()返回值為 10, 而CHAR_LENGTH()的返回值為5。
mysql> select char_length('abcde');
+----------------------+
| char_length('abcde') |
+----------------------+
| 5 |
+----------------------+
1 row in set (0.00 sec)
5、 CONCAT(str1,str2,...)
返回結果為連線引數產生的字串。如有任何一個引數為NULL ,則返回值為 NULL。或許有一個或多個引數。 如果所有引數均為非二進位制字串,則結果為非二進位制字串。
如果自變數中含有任一二進位制字串,則結果為一個二進位制字串。一個數字引數被轉化為與之相等的二進位制字串格式;若要避免這種情況,可使用顯式型別 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
mysql> select concat('My','S','QL');
+-----------------------+
| concat('My','S','QL') |
+-----------------------+
| MySQL |
+-----------------------+
1 row in set (0.00 sec)
mysql> select concat('My','S',null);
+-----------------------+
| concat('My','S',null) |
+-----------------------+
| NULL |
+-----------------------+
1 row in set (0.00 sec)
6、 CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一個引數是其它引數的分隔符。分隔符的位置放在要連線的兩個字串之間。
分隔符可以是一個字串,也可以是其它引數。如果分隔符為 NULL,則結果為 NULL。函式會忽略任何分隔符引數後的 NULL 值。
mysql> select concat_ws(':','what','are','you'), concat_ws(':','what',null,'you'), concat_ws(null,'what','are','you');
+-----------------------------------+----------------------------------+------------------------------------+
| concat_ws(':','what','are','you') | concat_ws(':','what',null,'you') | concat_ws(null,'what','are','you') |
+-----------------------------------+----------------------------------+------------------------------------+
| what:are:you | what:you | NULL |
+-----------------------------------+----------------------------------+------------------------------------+
1 row in set (0.00 sec)
7、 ELT(N,str1,str2,str3,...)
若N = 1,則返回值為 str1 ,若N = 2,則返回值為 str2 ,以此類推。若N 小於1或大於引數的數目,則返回值為 NULL 。 ELT() 是 FIELD()的補數。
mysql> select elt(1,'first','second','three','four'),elt(4,'first','second','three','four');
+----------------------------------------+----------------------------------------+
| elt(1,'first','second','three','four') | elt(4,'first','second','three','four') |
+----------------------------------------+----------------------------------------+
| first | four |
+----------------------------------------+----------------------------------------+
1 row in set (0.00 sec)
8、 HEX(N_or_S)
如果N_OR_S 是一個數字,則返回一個十六進位制值 N 的字串表示,在這裡,N 是一個longlong (BIGINT)數。這相當於 CONV(N,10,16)。
如果N_OR_S 是一個字串,則返回值為一個N_OR_S的十六進位制字串表示, 其中每個N_OR_S 裡的每個字元被轉化為兩個十六進位制數字。
mysql> select hex(255),hex('abc');
+----------+------------+
| hex(255) | hex('abc') |
+----------+------------+
| FF | 616263 |
+----------+------------+
1 row in set (0.03 sec)
mysql> select 0x616263;
+----------+
| 0x616263 |
+----------+
| abc |
+----------+
1 row in set (0.00 sec)
9、 INSERT(str,pos,len,newstr)
返回字串 str, 其子字串起始於 pos 位置, 長度被字串 newstr取代的len 字元。
如果pos 超過字串長度,則返回值為原始字串。假如len的長度大於其它字串的長度,則從位置pos開始替換。若任何一個引數為null,則返回值為NULL。
mysql> select insert('abcdefgh',2,4,'what'),insert('abcdefgh',2,100,'what'),insert('abcdefgh',-1,4,'what'),insert('abcdefgh',2,null,'what');
+-------------------------------+---------------------------------+--------------------------------+----------------------------------+
| insert('abcdefgh',2,4,'what') | insert('abcdefgh',2,100,'what') | insert('abcdefgh',-1,4,'what') | insert('abcdefgh',2,null,'what') |
+-------------------------------+---------------------------------+--------------------------------+----------------------------------+
| awhatfgh | awhat | abcdefgh | NULL |
+-------------------------------+---------------------------------+--------------------------------+----------------------------------+
1 row in set (0.00 sec)
10、INSTR(str,substr)
返回字串 str 中子字串的第一個出現位置。這和LOCATE()的雙引數形式相同,除非引數的順序被顛倒。
mysql> select instr('abcedefg','ac'),instr('abcedefg','ed');
+------------------------+------------------------+
| instr('abcedefg','ac') | instr('abcedefg','ed') |
+------------------------+------------------------+
| 0 | 4 |
+------------------------+------------------------+
1 row in set (0.00 sec)
11、LEFT(str,len)
返回從字串str 開始的len 最左字元。
mysql> select left('abcedefg',5);
+--------------------+
| left('abcedefg',5) |
+--------------------+
| abced |
+--------------------+
1 row in set (0.00 sec)
12、RIGHT(str,len)
從字串str 開始,返回最右len 字元
mysql> select right('abcedefg',5);
+---------------------+
| right('abcedefg',5) |
+---------------------+
| edefg |
+---------------------+
1 row in set (0.00 sec)
13、LOAD_FILE(file_name)
讀取檔案並將這一檔案按照字串的格式返回。 檔案的位置必須在伺服器上,你必須為檔案制定路徑全名,而且你還必須擁有FILE 特許權。
檔案必須可讀取,檔案容量必須小於 max_allowed_packet位元組。
mysql> update test set blob_col = load_file('/tmp/picture') where id = 1;
14、LOCATE(substr,str) , LOCATE(substr,str,pos)
第一個語法返回字串 str中子字串substr的第一個出現位置。第二個語法返回字串 str中子字串substr的第一個出現位置, 起始位置在pos。
如若substr 不在str中,則返回值為0。
mysql> select locate('bar','foobarbar',5),locate('bar','foobarbar');
+-----------------------------+---------------------------+
| locate('bar','foobarbar',5) | locate('bar','foobarbar') |
+-----------------------------+---------------------------+
| 7 | 4 |
+-----------------------------+---------------------------+
1 row in set (0.00 sec)
15、LOWER(str)/ UPPER(str)
將字串進行大小寫轉換
mysql> select lower('AbC'),upper('Abc');
+--------------+--------------+
| lower('AbC') | upper('Abc') |
+--------------+--------------+
| abc | ABC |
+--------------+--------------+
1 row in set (0.00 sec)
17、LPAD(str,len,padstr)
返回字串 str, 其左邊由字串padstr 填補到len 字元長度。假如str 的長度大於len, 則返回值被縮短至 len 字元。
mysql> select lpad('hi',4,'?'),lpad('hi',1,'?');
+------------------+------------------+
| lpad('hi',4,'?') | lpad('hi',1,'?') |
+------------------+------------------+
| ??hi | h |
+------------------+------------------+
1 row in set (0.00 sec)
18、RPAD(str,len,padstr)
返回字串str, 其右邊被字串 padstr填補至len 字元長度。假如字串str 的長度大於len,則返回值被縮短到與 len 字元相同長度。
mysql> select rpad('hi',4,'?'),rpad('hi',1,'?');
+------------------+------------------+
| rpad('hi',4,'?') | rpad('hi',1,'?') |
+------------------+------------------+
| hi?? | h |
+------------------+------------------+
1 row in set (0.03 sec)
19、LTRIM(str)/ RTRIM(str)
返回結果字串,並去除左/右側的空格
mysql> select ltrim(' xx '),rtrim(' xx ');
+------------------+-----------------+
| ltrim(' xx ') | rtrim(' xx ') |
+------------------+-----------------+
| xx | xx |
+------------------+-----------------+
1 row in set (0.01 sec)
20、QUOTE(str)
引證一個字串,由此產生一個在SQL語句中可用作完全轉義資料值的結果。
返回的字串由單引號標註,每例都帶有單引號 (‘'’)、 反斜線符號 (‘\’)、 ASCII NUL以及前面有反斜線符號的Control-Z 。如果自變數的值為NULL, 則返回不帶單引號的單詞 “NULL”。
mysql> select quote('Don\'t!');
+------------------+
| quote('Don\'t!') |
+------------------+
| 'Don\'t!' |
+------------------+
1 row in set (0.02 sec)
21、REPEAT(str,count)
返回一個由重複的字串str 組成的字串,字串str的數目等於count 。若 count <= 0,則返回一個空字串。若str 或 count 為 NULL,則返回 NULL 。
mysql> select repeat('abc',3),repeat('abc',0),repeat('abc',null);
+-----------------+-----------------+--------------------+
| repeat('abc',3) | repeat('abc',0) | repeat('abc',null) |
+-----------------+-----------------+--------------------+
| abcabcabc | | NULL |
+-----------------+-----------------+--------------------+
1 row in set (0.00 sec)
22、REPLACE(str,from_str,to_str)
返回字串str 以及所有被字串to_str替代的字串from_str 。
mysql> select replace('abcdea','a','ww');
+----------------------------+
| replace('abcdea','a','ww') |
+----------------------------+
| wwbcdeww |
+----------------------------+
1 row in set (0.00 sec)
23、REVERSE(str)
返回字串 str ,順序和字元順序相反。
mysql> select reverse('abcdef');
+-------------------+
| reverse('abcdef') |
+-------------------+
| fedcba |
+-------------------+
1 row in set (0.00 sec)
24、SUBSTRING(str,pos,len)
字串str返回一個長度同len字元相同的子字串,起始於位置 pos
mysql> select substr('abcedfg',2,4),substr('abcedfg',2),substr('abcedfg',-2,4),substr('abcedfg',-2);
+-----------------------+---------------------+------------------------+----------------------+
| substr('abcedfg',2,4) | substr('abcedfg',2) | substr('abcedfg',-2,4) | substr('abcedfg',-2) |
+-----------------------+---------------------+------------------------+----------------------+
| bced | bcedfg | fg | fg |
+-----------------------+---------------------+------------------------+----------------------+
1 row in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-689884/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 函式小結函式
- mysql日期函式小結及個人實驗MySql函式
- Mysql字元處理函式詳解MySql字元函式
- 函式ZwQuerySystemInformation小結函式ORM
- Oracle 函式小結Oracle函式
- RANK函式小結函式
- MySQL字元函式的壓力測試MySql字元函式
- 字元函式字元函式
- MYSQL 一個巧用字元函式巧用字元函式做資料篩選的題MySql字元函式
- mysql日期函式總結MySql函式
- oracle字元函式Oracle字元函式
- 字元函式、數字函式和日期函式字元函式
- php陣列函式小結PHP陣列函式
- Mysql替換欄位中指定字元(replace 函式)MySql字元函式
- mysql函式全面總結KSVMMySql函式
- 字元處理函式字元函式
- mysql中的(字元)轉換函式以及排序問題。MySql字元函式排序
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- mysql之常用函式(核心總結)MySql函式
- MySQL視窗函式用法總結MySql函式
- 新版字元擷取函式字元函式
- Oracle函式-->字元處理Oracle函式字元
- oracle 10g函式大全--字元型函式Oracle 10g函式字元
- DB2 時間函式小結 .DB2函式
- 關於字串的功能函式小結字串函式
- ORACLE單行函式與多行函式之二:字元函式示例Oracle函式字元
- Linux字元驅動程式的基本結構與函式Linux字元函式
- 關於字元函式的一些應用總結字元函式
- MySQL數學函式簡明總結MySql函式
- oracle 與 mysql 中的函式總結OracleMySql函式
- PostgreSQL:字元——型別及函式SQL字元型別函式
- MySQL 函式MySql函式
- MySQL函式MySql函式
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- mysql GROUP_CONCAT(test_score) 很好的拼字元的函式MySql字元函式
- 函式計算支援 MySQL 例項繫結函式MySql
- MySQL 字串擷取相關函式總結MySql字串函式
- Mysql 常用函式(15)- upper 函式MySql函式