即使where子句中不存在值,也要返回

时间:2013-10-07 21:43:41

标签: php mysql sql select where

使用PDO。

SELECT *
FROM time 
WHERE 
    UserId = :uid AND 
(
    week = :CurrentWeek || 
    week = :PreviousWeek1 || 
    week = :PreviousWeek2 || 
    week = :PreviousWeek3 || 
    week = :PreviousWeek4 || 
    week = :PreviousWeek5 
    ) 
GROUP BY week
ORDER BY week DESC

所以,我试着打印过去五周的时间加上这样的表中的当前时间。

                v1      v2      v3      v4      v5      
    Person 1    40      40      40      40      40      
    Person 2    39      40      39      40      40

问题在于,例如。 v3不存在,它将v4推到v3的位置。我正在寻找试图获取所有周值的东西,如果它们不存在,它将返回该列的默认值。

我想以最好的方式解决这个问题。 (我当然可以为每周制作一个循环并逐个获取值,但它必须是一种更有效的方式)

1 个答案:

答案 0 :(得分:1)

除非你愿意generate fake data in MySQL(根本没有效率),你应该从过去五周获得数据,然后在php中处理差距(应该很简单)。这确实是“最好的方式”。