假设我有一张表A如下:
uid | productid | price 1 | 1 | 15 2 | 1 | 20 1 | 2 | 24 NULL | 1 | 90 NULL | 2 | 49
我需要一个SQL查询,它将返回一个特定的uid,产生价格,但如果这个uid,productid对不存在将返回uid NULL和相同productid的价格。
对于上面的例子,如果我问uid = 1和productid = 1的价格,我需要返回第1行(而不是第4行)。 如果我问uid = 2和productid = 2的价格,我需要这次返回最后一行,因为uid和productid没有(2,2)对。
我希望很清楚...... 先感谢您。
答案 0 :(得分:2)
同时选择:where uid=2 or uid is null
。然后首先采用非空值排序的第一条记录。
Select price
from TableName
where productid=2
and (uid=2 or uid is null)
order by uid is null
limit 1