2010-10-29 97 views
4

我們的應用程序提供了基本上只是文本輸入的多個查詢接口。關於後端邏輯是否應該用通配符填充查詢參數,然後執行類似操作還是應該只執行一個等號,是否有最佳做法?當然,另一種選擇是允許用戶使用通配符,然後在適當的情況下檢查並使用「like」。查詢表格邏輯:「Like」vs.「Equals」

我理解使用這樣的通配符的性能意義,這可以被看作是一個主題問題,我只想知道是否有標準的做法。

回答

2

這是我留給用戶的東西,然後才能真正做出選擇。我見過的所有UI都允許用戶指定條件:

  • 要檢查的列。
  • 包含該關係的下拉框,如equal to,not equal to,less than,greater than, starts with
  • 要比較的值。

然後,對於starts with選項,你只是釘在%並使用like

您會注意到(出於您似乎已經瞭解的性能原因),我使用starts with而不是like來限制拖動數據庫性能的可能性。

我並不是無限制like聲明的忠實粉絲,儘管您也可以爲那些能夠存儲顛倒索引的DBMS提供ends with

+0

你會使用aligator括號進行字符串比較嗎? – 2010-10-29 15:43:33

+0

取決於用戶。說實話,因爲他們既不能理解'<>'也不懂'!=',所以我可能'不等於'(以及所有其他人的文本表示)。 – paxdiablo 2010-10-29 15:46:18

+1

!=上的好處 – 2010-10-29 15:50:10