我有一个查询希望缩短。
SELECT date1, date2, date3, date4, date5, date6, date7 FROM dates_db
WHERE date1 =('$date1') OR date1 =('$date2') OR date1=('$date3')
OR date1=('$date4') OR date1=('$date5') OR date1=('$date6')
OR date1=('$date7') OR date2 =('$date1') OR date2 =('$date2')
OR date2=('$date3') OR date2=('$date4') OR date2=('$date5')
OR date2=('$date6') OR date2=('$date7') OR date3 =('$date1')
OR date3 =('$date2')OR date3=('$date3') OR date3=('$date4')
OR date3=('$date5') OR date3=('$date6') OR date3=('$date7')
以此类推,直到日期1-7为止。
这个查询是巨大的,有什么办法可以缩短它。这是针对压延机类型的设计,在其中查找不同日期的数据条目。因此,如果日期匹配,则它将发布到日历中。
最佳答案
您可以使用IN
谓词来代替这些OR
的谓词:
SELECT date1, date2, date3, date4, date5, date6, date7
FROM dates_db
WHERE date1 IN ('$date1','$date2','$date3','$date4','$date5','$date6','$date7')
OR date2 IN ('$date1','$date2','$date3','$date4','$date5','$date6','$date7')
OR date3 IN ('$date1','$date2','$date3','$date4','$date5','$date6','$date7')
...
关于php - SELECT QUERY结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12671976/