我意識到這是相當抽象,但我想這樣做沒有什麼不同記住牛奶的智能列出了一句: 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