標籤:
MySQL函數
字串相關函數1 ASCII(String)
返回字串第一個字母的ASCII碼:
SELECT ASCII(‘A‘);
SELECT ASCII(‘AB‘);
這兩條語句都是輸出65!
2 BIN(long)
返回整數的二進位形式的字串
SELECT BIN(15);
輸出1111
3 CHAR(int…)
將每個整型轉換成對應的字元
SELECT CHAR(65,66,67,68,69);
輸出ABCDE
SELECT CHAR(‘65‘,‘66‘,‘67‘,‘68‘,‘69‘);
參數為字串時,會被轉換成整型,然後再轉換成對應字元。
4 CHAR_LENGTH(String)
返回字串的長度!‘中國‘這個字串長度為2。‘ab‘長度為2!不分中英文!
SELECT CHAR_LENGTH(‘a中b國c‘);
輸出5
5 CHARACTER_LENGTH(String)
與CHAR_LENGTH()完全相同!
6 CONCAT(String…)
將多個字串串連成一個字串
SELECT CONCAT(‘My‘, ‘SQL‘);
輸出MySQL
7 CONCAT_WS(separator, String…)
使用第一個參數字串,把其他參數字串串連。
SELECT CONCAT_WS(‘-‘, ‘A‘,‘B‘,‘C‘);
輸出A-B-C
8 CONV(int n, int radix1, int radix2)
把n從radix1進位轉換成radix2進位。
SELECT CONV(‘F‘, 16, 10);
一個個參數F是一個數值,第二個參數16說明F是16進位數值,第三個參數10說明要把F轉換成10進位,所以輸出15。
9 ELT(N, str1, str2, str3…)
N是一個整數,若N為1,則返回str1,若N為2,則返回str2,以此類推
SELECT ELT(3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘);
輸出c
10 EXPORT_SET(int bits, String on, String off, Strring separator, int length)
bits是一個整數,把bits轉換成二進位,其中1用on替換,0用off轉換,使用separator來串連每個二進位位,length是指定從左至右顯示幾位。如果沒有指定length,那麼會在右邊補足到64位。
SELECT EXPORT_SET(13, ‘a‘, ‘b‘, ‘-‘, 4);
輸出a-b-a-a,因為13的二進位是1011,其中1用a替換,而0用b替換。
SELECT EXPORT_SET(13, ‘a‘, ‘b‘, ‘-‘, 3);
輸出a-b-a
SELECT EXPORT_SET(13, ‘a‘, ‘b‘, ‘-‘, 10);
輸出a-b-a-a-b-b-b-b-b-b,因為13隻有4位,而length為10,那麼會在右邊補足到10位,都是用0補,所以才會多出來6個b。
流程式控制制函數1 CASE value WHEN v1 THEN expr1 WHEN v2 THEN expr2 …. END
這種CASE WHEN THEN語句與Java中的switch語句基本相同:
SELECT CASE 3
WHEN 1 THEN ‘a‘
WHEN 2 THEN ‘b‘
WHEN 3 THEN ‘c‘
WHEN 4 THEN ‘d‘
END;
2 CASE WHEN condition THEN expr1 WHEN condition THEN expr2 … END
這種CASE WHEN THEN語句與Java中的多分支if/else if比較相似:
SELECT CASE
WHEN 1>2 THEN ‘1>2‘
WHEN 1<2 THEN ‘1<2‘
END;
3 IF(condition, expr1, expr1)
同時與Java中的if/else
SELECT
IF(1 > 0, ‘1>0‘, ‘1<0‘);
4 INNULL(expr1, expr2)
當expr1為NULL時,那麼函數返回expr2,否則返回expr1。
SELECT
IFNULL(NULL, ‘hello‘);
?
SELECT
IFNULL(‘hello‘, ‘world‘);
常用函數1 時間日期相關函數
- CURRENT_DATE():輸出當前日期;
- CURRENT_TIME():輸出目前時間;
- CURRENT_TIMESTAMP():輸出當前日期和時間,即輸出目前時間戳;
- NOW():輸出當前日期和時間,與CURRENT_TIMESTAMP相同;
2 字串相關函數
- CONCAT(‘My‘, ‘SQL‘):輸出MySQL,即連接字串,參數可以是多個;
- CHAR_LENGTH(‘helloworld中‘):輸出11,返回字串字元的個數;
- UCASE(‘hello‘):輸出HELLO;
- LCASE(‘HELLO‘):輸出hello;
- LEFT(‘helloworld‘,5):輸出hello,輸出左邊5個字元;
- LENGTH(‘helloworld中‘):輸出13,返回字串所佔位元組數。當然,如果client的字元集是gbk,那麼就輸出12了;
- STRCMP(‘zhan‘, ‘zhao‘):輸出-1,比較兩個字串的大小,如果前者大返回1,後者大返回-1,相等返回0;
- TRIM(‘ hello ‘):輸出hello,去除左右邊空白;
3 數學運算相關函數
- ABS(-100):輸出100,求絕對值;
- BIN(15):輸出1111,即15的二進位字串;
- FORMAT(1.23456, 3):輸出1.235,保留3位小數(四捨五入),如果整數部分大於3位會有逗號出現;
- HEX(15):輸出F,即出來16進位表示形式;
- MOD(10, 3):輸出1,即取餘運算;
- RAND():輸出0~1之間的隨機小數;
?
?
mysql 常用函數