MYSQL字符串連接和其他數據庫不太一樣,下面就為您詳細介紹MYSQL字符串連接的方法,如果您對此方面感興趣的話不妨一看。
在Java、C#等編程語言中字符串的拼接可以通過加號“+”來實現,比如:"1"+"3"、"a"+"b"。
在MYSQL中也可以使用加號“+”來連接兩個字符串,比如下面的SQL:
SELECT '12'+'33',FAge+'1' FROM T_Employee
仔細觀察第一列,驚訝嗎?這個列的顯示結果並不是我們希望的“1233”,而是把“12”
和“33”兩個字符串當成數字來求兩個數的和了;同樣將一個數字與一個MYSQL字符串用加號“+”連接也是同樣的效果,比如這裡的第二列。
在MYSQL中,當用加號“+”連接兩個字段或者多個字段)的時候,MYSQL會嘗試將字段值轉換為數字類型如果轉換失敗則認為字段值為0),然後進行字段的加法運算。因此,當計算的'12'+'33'的時候,MYSQL會將“12”和“33”兩個字符串嘗試轉換為數字類型的12和33,然後計算12+33的值,這就是為什麼我們會得到45的結果了。同樣道理,在計算FAge+'1'的時候,由於FAge為數字類型,所以不需要進行轉換,而'1'為字符串類型,所以MYSQL將'1'嘗試轉換為數字1,然後計算FAge+1做為計算列的值。
MYSQL會嘗試將加號兩端的字段值嘗試轉換為數字類型,如果轉換失敗則認為字段值為0,比如我們執行下面的SQL語句:
SELECT 'abc'+'123',FAge+'a' FROM T_Employee
在MYSQL中進行字符串的拼接要使用CONCAT函數,CONCAT函數支持一個或者多個參數,參數類型可以為字符串類型也可以是非字符串類型,對於非字符串類型的參數MYSQL將嘗試將其轉化為字符串類型,CONCAT函數會將所有參數按照參數的順序拼接成一個字符串做為返回值。比如下面的SQL語句用於將用戶的多個字段信息以一個計算字段的形式查詢出來:
SELECT CONCAT('工號為:',FNumber,'的員工的幸福指數:',FSalary/(FAge-21))
FROM T_Employee
CONCAT支持只有一個參數的用法,這時的CONCAT可以看作是一個將這個參數值嘗試轉化為字符串類型值的函數。MYSQL中還提供了另外一個進行字符串拼接的函數CONCAT_WS,CONCAT_WS可以在待拼接的字符串之間加入指定的分隔符,它的第一個參數值為采用的分隔符,而剩下的參數則為待拼接的字符串值,比如執行下面的SQL:
SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee
與MYSQL不同,MSSQLServer中可以直接使用加號“+”來拼接字符串。比如執行下面的SQL語句:
SELECT '工號為'+FNumber+'的員工姓名為'+Fname FROM T_Employee
WHERE FName IS NOT NULL
查看MySQL數據庫表的命令介紹
帶您了解什麼是Mysql分表
MySQL服務器的內部鎖定
Mysql Merge表的優點
Mysql行級鎖和頁級所的優缺點