MySQL常用型別轉換函式總結(推薦)
1、Concat函式。
連線字串常用:concat函式。如sql查詢條件的like查詢,AND c.name like concat(#{param.name},'%')
將Int 轉為varchar經常用 concat函式,比如concat(8,'0') 得到字串 '80'
2、Cast函式;CONVERT函式。
用法:CAST(expr AS type),CONVERT(expr,type),CONVERT(expr USING transcoding_name).
SELECT CONVERT('abc' USING utf8);
將varchar 轉為Int 用 cast(str as unsigned) str為varchar型別的字串 。
比如常用的百分比轉換:
select cast((1/3)*100 as UNSIGNED) as percent from dual;
result: 33
MySQL型別轉換函式引數 : CAST(xxx AS 型別),CONVERT(xxx,型別)
這個型別 可以是以下值其中的 一個:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
整數 : SIGNED
無符號整數 : UNSIGNED
二進位制,同帶binary字首的效果 : BINARY
字元型,可帶引數 : CHAR()
時間: TIME
日期時間型 : DATETIME
浮點數 : DECIMAL
mysql> SELECT BINARY 'a' = 'A'; -> 0
3、IF函式
mysql中if是函式而不是命令
IF(expr1,expr2,expr3)
如果 expr1 為真(expr1 <> 0 以及 expr1 <> NULL),那麼 IF() 返回 expr2,否則返回 expr3。IF() 返回一個數字或字串,這取決於它被使用的語境:
mysql> SELECT IF(1>2,2,3); -> 3 mysql> SELECT IF(1<2,'yes','no'); -> 'yes' mysql> SELECT IF(STRCMP('test','test1'),'no','yes'); -> 'no'
如果 expr2 或 expr3 明確地為 NULL,那麼函式 IF() 的返回值型別為非 NULL 列的型別。(這在選擇在 MySQL 4.0.3 中新加入)。 expr1 是作為一個整數值被計算的,這就意味著,如果測試的是一個浮點型或字串值,就必須進行比較操作:
mysql> SELECT IF(0.1,1,0); -> 0 mysql> SELECT IF(0.1<>0,0); -> 1
在上面第一種情況下,IF(0.1) 返回 0,是因為 0.1 被轉換為一個整數值,返回 IF(0) 的測試結果。這可能不是你所期望的。在第二種情況下,比較測試原浮點數是否為一個非零值。比較的結果被作為整數使用。 預設的 IF() 返回值型別 (當結果儲存在臨時表中時,這是非常重要的) 在 MySQL 3.23 中按下列方式確定: 表示式 返回值
表示式(expr2)或表示式(expr3)返回值為字串 字串
表示式(expr2)或表示式(expr3)返回值為浮點型值 浮點型
表示式(expr2)或表示式(expr3)返回值為整型 整型
如果表示式(expr2)和表示式(expr3)均是字串,同時兩個字串均是忽略字母大小寫的,那麼返回值也是忽略字母大小寫的(從 MySQL 3.23.51 開始)。
以上所述是小編給大家介紹的MySQL常用型別轉換函式總結詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!