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,1,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常用類型轉換函數總結詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章