共計 1561 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
本篇文章為大家展示了 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 中有哪些常用的類型轉換函數,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。
向 AI 問一下細節