我正在建立一个跟踪视频游戏日常挑战的系统。每日挑战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