之前,我用mySQL
find_in_set(idField,:ids)
由逗號,例如隔開IDS刪除或更新多場:如何在SYBASE中使用mySQL的find_in_set?
UPDATE USER SET name = 'a' WHERE find_in_set(id,'1,2,3,4') > 0
我怎麼可以自定義查詢,並在Sybase使用它?
之前,我用mySQL
find_in_set(idField,:ids)
由逗號,例如隔開IDS刪除或更新多場:如何在SYBASE中使用mySQL的find_in_set?
UPDATE USER SET name = 'a' WHERE find_in_set(id,'1,2,3,4') > 0
我怎麼可以自定義查詢,並在Sybase使用它?
由於Sybase沒有像find_in_set這樣的函數,因此有兩個選項:google,一個將逗號分隔列表解析爲臨時表的函數,或者使用帶有execute-command的動態SQL。
注意:您尚未提及您使用的是哪種Sybase數據庫產品(ASE?SQLAnywhere?IQ?Advantage?),也不是版本。雖然ASE沒有像find_in_set()這樣的東西,但我不能說其他數據庫產品。
從ASE角度來看,你有幾個選擇:
創建自己的用戶定義的函數;你有T-SQL(因爲ASE 15.0.2)和Java選項
構建一個動態查詢,並提交通過的execute()
重寫查詢使用可用ASE功能(例如,PATINDEX() CHARINDEX())
重寫查詢使用像操作符(見alternate to find_in_set() for non-MySQL databases爲例)
我知道SYBASE不要有FIND_IN_SET。我嘗試調用相同的功能,在sybase – Adam