我有一张这样的表
days discount
3 5.00
7 10.00
10 15.00
最多3天的折扣价格是5卢比.4到7的价格是10卢比等等......我总共没有天数。如果没有天数< 4然后得到5.00。如果没有第4天到第7天那么得到10.如何在sql查询中写条件
答案 0 :(得分:2)
比如'6'天。你想选择所有折扣,其中表中的天数大于你的6(所以7或10),然后得到最小的(7)。
SELECT discount FROM yourTable
WHERE
days >= '6'
ORDER BY days DESC
LIMIT 1
(正如你所说'3'也有折扣,我假设“4到7”表示包括 7.否则,从查询中删除=
< / p>
如评论中所述,如果可以的话,你应该使用准备好的陈述,所以你会做这样的事情:
SELECT discount FROM yourTable
WHERE
days >= ?
ORDER BY days DESC
LIMIT 1
然后绑定那个?到整数。
答案 1 :(得分:1)
您可以创建和使用如下所示的预准备语句:
SELECT discount
FROM myTable
WHERE days >= ?
ORDER BY days DESC
LIMIT 1
答案 2 :(得分:0)
SELECT discount FROM mytable WHERE days > XXXX LIMIT 1
其中XXX是您想要的天数。
答案 3 :(得分:0)
您需要在select语句中使用case construct。
SELECT CASE numdays
WHEN >= 8 THEN 15.0
WHEN >= 4 THEN 10.0
WHEN < 4 THEN 5.0
END AS discount