我意识到这是相当抽象,但我想这样做没有什么不同记住牛奶的智能列出了一句: http://www.rememberthemilk.com/help/answers/search/advanced.rtm如何将用户可自定义的高级搜索转换为SQL查询?
我有一组的标签,分类等用户的故事,和我看到用户可定制的“视图”或“智能列表”返回一组特定的故事将是非常有利的。这使得使用该应用程序的工作流程对于许多不可预见的情况来说非常灵活和有用。
我现在都没有问题简单或查询:
WHERE tag = "tag1" OR tag = "tag2" OR category = "category1" OR category = "category2"
但是这真的不是混合和/或条件有用:
WHERE (tag = "tag1" OR tag = "tag2") AND category = "category1"
因此,表观问题是:
- Nes泰德条件
- 混合和/或条件在同一个查询
- 使这种“抽象查询”语法更多或更少的人可读,易于存储/解析,URL查询字符串友好等
更糟糕的是,简单的OR条件可以在where子句中得到很好的处理,但AND(复合条件)似乎需要每个条件的额外连接,并且我失去了如何在可持续代码中组织这些条件。
我正在使用PHP/MySQL,但这似乎并没有如此特定的平台。总之,我想找到一种可持续的方法来解析和转换人为生成的条件序列为SQL。
你在找什么样的答案?现有技术的例子?伪代码(它的桶)?关于编程问题的建议你正在实施一些解决方案?或者只是一致认为这个问题很简单? (作为参考,这个问题很简单。) – Graham 2012-02-07 05:50:54
如何将语法字符串解析为顺序数据库操作,是否处理过滤客户端/服务器端,是否为每个保存的搜索创建自定义数据库视图。只是希望人们在这一点上抛出想法。 – landons 2012-02-07 05:53:24