我目前正在尋找一個搜索功能,用戶可以通過主持演出的樂隊名稱或演出本身的位置來搜索演出。我遇到的問題是搜索的位置部分,我想搜索我存儲的城鎮,縣和國家/地區字段,以便說如果演出地點是「英格蘭約克郡的利茲」,用戶搜索「英語「它會匹配,因爲它發現它在國家領域。如果他們因爲在利茲的比賽而搜索「編輯」,那麼也是一樣。在查詢中搜索多個列
我知道這可以通過在查詢中使用Group By方法來實現,但是,我正在尋找有關最佳實踐的建議,以及如何應用它,因爲我之前沒有使用Group By。
這裏是不正確的查詢我開始:
<cfquery datasource="#datasource#" name="findgigs">
Select artist_id, gig_id, gig_artistid, gig_town, gig_county, gig_country
From artists, gigs
Where artist_id = gig_artistid
<cfif IsDefined("URL.search")>
And gig_town LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%#URL.search#%>
Or gig_county LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%#URL.search#%>
Or gig_country LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%#URL.search#%>
</cfif>
</cfquery>
正如我在運行查詢後發現(事先應已知)返回很多重複。然而,看着這個查詢,你可以看到我試圖獲得它的方式完全是錯誤的。任何關於如何改善這方面的知識或建議,將不勝感激。
「我一直在尋找最佳實踐的建議」不要用'選擇*':) – Travis 2013-04-22 12:06:27
好點,現在不適合編輯。 – Banny 2013-04-22 12:15:47
如果你只是做了一個獨特的選擇? – 2013-04-22 12:53:44