【发布时间】:2020-09-10 11:04:17
【问题描述】:
我的用例:
我们允许系统用户根据 UI 中的各种过滤器创建联系人详细信息列表(即细分)。因此,他们使用表单创建细分,以选择所有生活在特定州的人。
所以这里的问题是,当添加新联系人时,我希望这些段也能更新。我能想到的解决方案是为每个段保存 SQL 查询,并在使用这些 SQL 查询添加新联系人时更新每个段。
我想只以 json 字符串格式保存参数,但这种情况下的复杂情况是可用的过滤器针对多个表,并且无法生成动态 SQL 查询,因为它涉及连接和不同的过滤器(即“in”, 'endswith' 等)。
我认为它们中的任何一个都不是最好的解决方案。有更好的想法吗?
任何帮助将不胜感激,在此先感谢!
更新:我需要的 JSON 参数和查询
{'is_buyer': ['1'], 'is_executive_member': ['1'], 'is_member': ['1'], 'survey_participant': ['1'], 'cluster': ['A'], 'state': ['state1'], 'city': ['ab', 'cd'], 'gender': ['male']}
预期的查询输出:
SELECT * FROM `contacts` INNER JOIN `contacts_clusters` ON (`contacts`.`KEY` = `contacts_clusters`.`KEY`) WHERE (`contacts`.`IS_BUYER` IN (1) AND `contacts`.`IS_EXECUTIVE_MEMBER` IN (1) AND `contacts`.`IS_MEMBER` IN (1) AND `contacts`.`SURVEY_ID` IS NOT NULL AND `contacts_clusters`.`CLUSTER` IN ('A') AND `contacts`.`STATE` IN ('state1') AND `contacts`.`CITY` IN ('ab', 'cd') AND `contacts`.`GENDER` IN ('male'))
这只是分段过滤器的示例之一。还有更多的参数和表格可用于创建段。
【问题讨论】:
标签: mysql django mysql-python