我的数据库示例。我无法控制数据库如何保存数据。
http://sqlfiddle.com/#!9/155e3c/19
问题在于两个因素:
REST API(vTiger opensource CRM)不支持分组。
对于存储多个选项列表选项的字段,数据库将它们存储在由| ## |分隔的1个字段中。
我想要的: 我希望能够根据multipicklist字段中的值的存在来获取查询,但由于没有分组支持,我不能在不影响查询的其余部分的情况下执行此操作。
所以基本上我正在寻找一种方法来克服这种非分组情况,并产生一个等同于的查询:
SELECT * FROM Contacts WHERE car IN('Toyota','Ferrari')AND(country LIKE'%Canada%'或country LIKE'%Brazil%');
有办法做到这一点吗?
增加: 如果我只想获得用户在搜索multipicklist字段时给出的所有选项,那就没问题,因为我只会使用AND运算符。但如果我只想要其中一个选项,则非分组OR运算符会破坏我的查询。
答案 0 :(得分:0)
我遇到了类似的问题,我需要检索无法通过API查询支持获取的数据。我最终创建了自己的web服务。您需要创建一个可以在本地开发的模块,然后将其部署到生产vtiger实例。您需要具有生产实例管理员权限的vtiger用户才能安装您的模块(您不需要直接访问数据库或文件)。
这样,您可以在mysql中创建自己的查询,并将它们包装在getContactsByCar(car_array)等函数中。