之前,我使用find_in_set(idField,:ids)
中的mySQL
来删除或更新带有以逗号分隔的ID的多字段,例如:
UPDATE USER SET name = 'a' WHERE find_in_set(id,'1,2,3,4') > 0
如何自定义查询并在SyBase中使用它?
答案 0 :(得分:1)
注意:您还没有提到您正在使用的Sybase数据库产品(ASE?SQLAnywhere?IQ?Advantage?),以及版本。虽然ASE没有像find_in_set()这样的东西,但我无法代替其他数据库产品。
从ASE的角度来看,您有几个选择:
创建自己的用户定义函数;你有T-SQL(自ASE 15.0.2起)和Java选项
构建动态查询并通过execute()
重写查询以使用可用的ASE函数(例如,patindex(),charindex())
重写您的查询以使用 like 运算符(有关示例,请参阅alternate to find_in_set() for non-MySQL databases)
答案 1 :(得分:0)
由于Sybase没有find_in_set这样的功能,因此您有几个选项:google一个将逗号分隔列表解析为临时表的函数,或者使用带有execute-command的动态SQL。