1、concat函式。
連線字串常用:concat函式。如sql查詢條件的like查詢, and c.name like concat(#,'%')
將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(*** as 型別) , convert(***,型別)
這個型別 可以是以下值其中的 乙個:
binary[(n)]
char[(n)]
date
datetime
decimal
signed [integer]
time
unsigned [integer]
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 函式型別轉換 mysql 型別轉換函式
mysql 型別轉換函式 12.8.cast函式和操作符 binary binary操作符將後面的字串拋給乙個二進位制字串。這是一種簡單的方式來促使逐字節而不是逐字元的進行列比較。這使得比較區分大小寫,即使該列不被定義為 binary或 blob。binary也會產生結尾空白,從而更加顯眼。mysq...
mysql常用轉換函式 Mysql常用函式
ip位址轉換 inet aton 將ip位址轉換成數字型 inet ntoa 將數字型轉換成ip位址 phpip位址相互轉換 ip 轉整型 ip2long 133.114.56.135 轉整型後帶符號 2056111993 bindec decbin ip2long 133.114.56.135 轉...
mysql 型別轉換函式
12.8.cast函式和操作符 binary binary操作符將後面的字串拋給乙個二進位制字串。這是一種簡單的方式來促使逐字節而不是逐字元的進行列比較。這使得比較區分大小寫,即使該列不被定義為 binary或 blob。binary也會產生結尾空白,從而更加顯眼。mysql select a a ...