4
我們的應用程序提供了基本上只是文本輸入的多個查詢接口。關於後端邏輯是否應該用通配符填充查詢參數,然後執行類似操作還是應該只執行一個等號,是否有最佳做法?當然,另一種選擇是允許用戶使用通配符,然後在適當的情況下檢查並使用「like」。查詢表格邏輯:「Like」vs.「Equals」
我理解使用這樣的通配符的性能意義,這可以被看作是一個主題問題,我只想知道是否有標準的做法。
我們的應用程序提供了基本上只是文本輸入的多個查詢接口。關於後端邏輯是否應該用通配符填充查詢參數,然後執行類似操作還是應該只執行一個等號,是否有最佳做法?當然,另一種選擇是允許用戶使用通配符,然後在適當的情況下檢查並使用「like」。查詢表格邏輯:「Like」vs.「Equals」
我理解使用這樣的通配符的性能意義,這可以被看作是一個主題問題,我只想知道是否有標準的做法。
這是我留給用戶的東西,然後才能真正做出選擇。我見過的所有UI都允許用戶指定條件:
equal to
,not equal to
,less than
,greater than
, starts with
。然後,對於starts with
選項,你只是釘在%
並使用like
。
您會注意到(出於您似乎已經瞭解的性能原因),我使用starts with
而不是like
來限制拖動數據庫性能的可能性。
我並不是無限制like
聲明的忠實粉絲,儘管您也可以爲那些能夠存儲顛倒索引的DBMS提供ends with
。
你會使用aligator括號進行字符串比較嗎? – 2010-10-29 15:43:33
取決於用戶。說實話,因爲他們既不能理解'<>'也不懂'!=',所以我可能'不等於'(以及所有其他人的文本表示)。 – paxdiablo 2010-10-29 15:46:18
!=上的好處 – 2010-10-29 15:50:10