雖然SQL server和My sql的語句基本都一致,但是仍然存在一些小區別。就如字符串的連接來說,SQL server中的字符串連接是使用“+”來連接,不帶引號sql server是做加法運算。而my sql中無論是帶引號和不帶引號,它都將其先轉成數字型,然后在做運算。
SQL Server中字符串的連接:
ps:Age=21
SELECT '12'+'34',Age+1 FROM table
其結果輸出結果是第一列是1234,第二列是22。
MySQl中字符串連接:
SELECT '12'+'34','1abc'+'22','abc'+'3' FROM table
很驚訝發現其輸出結果是:第一列為46,第二列23,第三列為3。
注:在Mysql中,使用“+”進行字符連接時,mysql會嘗試將字段值轉換為數字類型(如果轉換失敗,就當做數字0處理)。如’1abc’+’22′,mysql將“1abc”轉成數字1在進行運算;將“abc”當做0處理。
在MYSQL中進行字符串的拼接要使用CONCAT函數,CONCAT函數支持一個或者多個參數,參數類型可以為字符串類型也可以是非字符串類型,對於非字符串類型的參數MYSQL將嘗試將其轉化為字符串類型,CONCAT函數會將所有參數按照參數的順序拼接成一個字符串做為返回值。
比如下面的SQL語句用於將用戶的多個字段信息以一個計算字段的形式查詢出來:
SELECT CONCAT('學號:',XNumber,'的綜合成績:',FSalary/(FAge-21)) FROM user
其輸出結果是:學號2010010035的綜合成績是90。