1. 程式人生 > 資料庫 >MySQL常用型別轉換函式總結(推薦)

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()

日期 : DATE
時間: 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常用型別轉換函式總結詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!