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