SQL拼串查詢

2021-07-26 19:30:22 字數 704 閱讀 6595

最近在做一些小型的系統,因為用的是ssm框架,所以sql都是自己動手寫的。在做模糊查詢的時候,老大告訴了乙個犧牲查詢效率的取巧方法:就是 拼接查詢條件。

如  select * from table where id+name+phone like #

上面接在 where 後面的對比條件使用字串拼接的形式來拼的。但是這裡有個坑。

那就是  不同資料庫之間  字串拼接函式不一樣!

這裡做個標記   以供以後查詢:

sql server:用加號(+)拼接字串的。並且對資料型別有要求。一般用cast()和convert()函式可用來獲取乙個型別的值,並產生另乙個型別的值。兩者具體的語法如下:cast(欄位名 as type)  convert(欄位名,type)。

mysql :使用concat(str1,str2.....)來拼接字串的,並且發現乙個有趣的現象,引數可以直接放int型別,原因不知,可能是因為可以隱轉。

返回結果為連線引數產生的字串。如有任何乙個引數為null ,則返回值為 null

如果所有引數均為非二進位制字串,則結果為非二進位制字串。 

如果自變數中含有任一二進位制字串,則結果為乙個二進位制字串。

乙個數字引數被轉化為與之相等的二進位制字串格式;若要避免這種情況,可使用顯式型別 cast, 例如:

select concat(cast(int_col as char), char_col)

在資料庫SQl中拼串

以動手實踐為榮,以只看不練為恥 以列印日誌為榮,以出錯不報為恥 以區域性變數為榮,以全域性變數為恥 以單元測試為榮,以手工測試為恥 以 重用為榮,以複製貼上為恥 以多型應用為榮,以分支判斷為恥 alter procedure dbo a tblname nvarchar 255 表名 fldname...

sql字串查詢

查詢特定格式的字元 例如 查詢姓李的學生 select from student where sname like 李 如果是查詢姓李或李兩個字或三個字的名稱 select from student where left sname,1 in 李 張 andlen sname 3and len sn...

linqtosql 多條件查詢,拼條件查詢

public listgetmemberquery rinceretbpmmember wheremodel,pmmembertypes membertype,int skip,int take,out int recordcount private bool memberquery rincere...