我正在建立一個跟蹤視頻遊戲日常挑戰的系統。每日挑戰4次,每週挑戰1次。每個挑戰都會被保存到一個帶有id的表格中,這個表格可以被重複使用,挑戰重複使用(大約22%的時間)。我有另一張桌子來存儲每一天的挑戰,它看起來像這樣:幫助簡化這個MySQL查詢
date | daily1 | daily2 | daily3 | daily4 |到期
由於挑戰被重複使用,我希望能夠通過其ID來查找使用挑戰的其他日子。我現在使用此查詢:
SELECT date FROM `current_daily`
WHERE daily1 = #
OR daily2 = #
OR daily3 = #
OR daily4 = #
ORDER BY date ASC
它可以工作,但它太笨重了。我試圖找到更好的是運行此查詢,所以我不需要所有的OR,但由於它從多個列獲取信息,它看起來不像我可以使用IN()。有沒有另外一種方法可以簡化這個查詢並獲得相同的信息?
我不認爲你可以簡單地通過你的SQL而不用重構你的表。 – 2011-03-31 15:17:37