MySQL基礎 字元函式

2021-09-07 18:32:03 字數 4045 閱讀 5402

1.upper和ucase

返回字串str,根據當前字符集對映(預設是iso-8859-1 latin1)把所有的字元改變成大寫。該函式對多位元組是可靠的。

2.lower和lcase

返回字串str,根據當前字符集對映(預設是iso-8859-1 latin1)把所有的字元改變成小寫。該函式對多位元組是可靠的。

3.find_in_set(str,strlist)

如果字串str在由n子串組成的表strlist之中,返回乙個1到n的值。乙個字串表是被「,」分隔的子串組成的乙個字串。如果第乙個引數是乙個常數字串並且第二個引數是一種型別為set的列,find_in_set()函式被優化而使用位運算!如果str不是在strlist裡面或如果 strlist是空字串,返回0。如果任何乙個引數是null,返回null。如果第乙個引數包含乙個「,」,該函式將工作不正常。

4.field(str,str1,str2,str3,…)

返回str在str1, str2, str3, …清單的索引。如果str沒找到,返回0。field()是elt()反運算。

select field('a','ab','a','c')

--返回2

5.elt(n,str1,str2,str3,…)

如果n= 1,返回str1,如果n= 2,返回str2,等等。如果n小於1或大於引數個數,返回null。elt()是field()反運算。

6.replace(str,from_str,to_str)

返回字串str,其字串from_str的所有出現由字串to_str代替。

select replace('abc','b','123')

--返回a123c

7.repeat(str,count)

返回由重複counttimes次的字串str組成的乙個字串。

如果count <= 0,返回乙個空字串。如果str或count是null,返回null。

select repeat('a',5);

--返回aaaaa

8.reverse(str)

返回顛倒字元順序的字串str。

select reverse('abc');

--返回cba

9.insert(str,pos,len,newstr)

返回字串str在位置pos起始的子串且len個字元長得子串由字串newstr代替。

select insert('abc123',4,2,'de')

--返回abcde3

10.substring(str from pos)

從字串str的起始位置pos返回乙個子串。

ps:mysql資料庫的下標是從1開始的。

select substring('abc123' from 4);

--返回123

11.substring_index(str,delim,count)

返回從字串str的第count個出現的分隔符delim之後的子串。如果count是正數,返回最後的分隔符到左邊(從左邊數) 的所有字元。如果count是負數,返回最後的分隔符到右邊的所有字元(從右邊數)。

select substring_index('ab1ab2ab3ab4','ab',3);

--返回ab1ab2

12.ltrim(str)

返回刪除了其前置空格字元的字串str。

select concat('1',ltrim('  abc   '),'2')

返回1abc   2

13.rtrim(str)

返回刪除了其拖後空格字元的字串str。

select concat('1',rtrim('  abc   '),'2')

返回返回1abc   2

14.trim([[both | leading | trailing] [remstr] from] str)

返回字串str,其所有remstr字首或字尾被刪除了。

如果沒有修飾符both、leading或trailing給出,both被假定。

如果remstr沒被指定,空格被刪除。

select concat('1',trim('  abc   '),'2');

返回返回1abc2

15.mid(str,pos,len)

從字串str返回乙個len個字元的子串,從位置pos開始。

select mid('abc123',4,2);

返回返回12

16.lpad(str,len,padstr)

返回字串str,左面用字串padstr填補直到str是len個字元長。

select lpad('1',5,'-');

返回----1

17.rpad(str,len,padstr)

返回字串str,右面用字串padstr填補直到str是len個字元長。

select rpad('1',5,'-');

返回1----

18. left(str,len)

返回字串str的最左面len個字元。

19.right(str,len)

返回字串str的最右面len個字元。

20.位置控制函式

position(substr in str)

返回子串substr在字串str第乙個出現的位置,如果substr不是在str裡面,返回0.

locate(substr,str,pos)

返回子串substr在字串str第乙個出現的位置,從位置pos開始。如果substr不是在str裡面,返回0。

instr(str,substr)

返回子串substr在字串str中的第乙個出現的位置。這與有2個引數形式的locate()相同,除了引數被顛倒。

select position('ab' in '123abc');

--返回4

select locate('ab','ab1ab2ab3',5);

--返回7

select instr('123ab1ab2ab3','ab');

--返回4

21.得到字串長度的函式

length(str),計算欄位的長度(位元組長度)。

octet_length(str),計算字串的位元組數,在utf8下, 乙個中文佔據3個長度; gbk下,乙個中文佔據2個長度.

char_length(str), 返回值為字串str 的長度,長度的單位為字元。乙個多位元組字元算作乙個單字元。

character_length(str),character_length()是char_length()的同義詞。

bit_length(str) 返回2進製長度。

select length('你好123abc'); --12

select octet_length('你好123abc'); --12

select char_length('你好123abc'); --8

select character_length('你好123abc'); --8

22.合併多個字串,或者表中的多個字段

concat(str1,str2,…)

返回來自於引數鏈結的字串。如果任何引數是null,返回null。可以有超過2個的引數。

乙個數字引數被變換為等價的字串形式。

select concat(123,'abc');

23.進製轉換

bin(n):返回二進位制值n的乙個字串表示,在此n是乙個長整數(bigint)數字,這等價於conv(n,10,2)。如果n是null,返回null。

oct(n):返回八進位制值n的乙個字串的表示,在此n是乙個長整型數字,這等價於conv(n,10,8)。如果n是null,返回null。

hex(n):返回十六進製制值n乙個字串的表示,在此n是乙個長整型(bigint)數字,這等價於conv(n,10,16)。如果n是null,返回null。

ascii(str):返回字串str的最左面字元的ascii**值。如果str是空字串,返回0。如果str是null,返回null。

mysql基礎複習 字元函式

表結構 1 concat 函式 作用 連線字串 select concat stu name,stu age as 姓名,年齡 作用 返回字串長度 select stu name as 姓名 length stu name as 姓名長度 3 upper 和lower 作用 upper 英文大寫,l...

mysql函式基礎 Mysql中的基礎函式

時間函式 select curdate 返回2014 09 12,不包含時分秒 select curtime 返回14 13 22,不包含年月日 select now 返回2014 09 12 10 46 17 select unix timestamp now unix timestamp dat...

MySQL字元函式

1 concat select concat username admin 輸出結果 usernameadmin select concat username admin 輸出結果 username admin select concat username admin password 123456...