我想知道什麼是完成以下使用MySQL的一個好辦法:構建SQL查詢(IES)使用可選參數/排名
比方說我有一個包含這些字段的表:
MyTable
---------
Country [string]
Region/Province/State [string]
City [string]
而且我在數據庫中的以下數據行
Entry 1: Canada, Ontario, Toronto
Entry 2: Canada, Ontario, Hamilton
Entry 3: Canada, Alberta, Calgary
現在我希望能夠搜索該表根據用戶提供的信息,但是,如果沒有RESU找到了用戶提供的信息,我希望程序嘗試使其不太具體。例如,如果用戶提供:
Canada, Ontario, Kingston
我想搜索查詢來搜索所有3個字段(這將產生0行),然後只對國家/地區(這將產生2行),然後只是針對國家(在前兩種情況下應該只產生一個額外的行)。這是可能的,如果是的話,它會非常有效嗎?這可以用1個查詢來完成,還是需要多個查詢,然後用一些交叉引用來消除相同的行(我想這樣做效率不高)?
非常感謝!
編輯 通過交叉引用/多個查詢我正在考慮使用UNION與幾個選擇。但我想知道是否有更好/更合乎邏輯的方式來做到這一點。
嗯,我將如何去分配排名值與IF語句?你介意舉個簡單的例子嗎? – user387302 2010-08-13 20:40:16