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(12,'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常用類型轉換函數總結詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- 解析MySQL隱式轉換問題
- MySQL的隱式類型轉換整理總結
- MySQL隱式類型的轉換陷阱和規則
- MySQL的時間差函數(TIMESTAMPDIFF、DATEDIFF)、日期轉換計算函數(date_add、day、date_format、str_to_date)
- 使用python將mysql數據庫的數據轉換為json數據的方法
- MySQL日期函數與日期轉換格式化函數大全
- 淺析MySQL顯式類型轉換
- mysql 轉換NULL數據方法(必看)
- 談談MySQL中的隱式轉換