我有一个表products
,其中包含价格和销售列(float 8,2)。
没有售价的产品将具有如下所示的值(value)。
价格
13.20
销售
0.00
产品售价为:
价格
10.00
销售
08.00
我正在尝试获取 price
介于 $min 和 $max 之间或 sale
介于 $min 和 $max 之间的所有产品。
select * from `products` where
( (价格
0.00 至 22.00 之间) 或 (促销
0.00 至 22.00 之间) )
且 status
= 1 且 sold
= 0 且 deleted
= 0 order by id
desc limit 12
但这不起作用?谁能帮我解决这个问题吗?提前致谢。
好的,我测试了这个 -
select * from `products` where
( (价格
0.00 至 22.00 之间) 或 (促销
0.00 至 22.00 之间) )
且 status
= 1 且 sold
= 0 且 deleted
= 0 order by id
desc limit 12
问题我发现,如果最低价格是 0.01,那么它会起作用,但如果最低价格是 0.00,我会得到没有价格限制的产品。为什么查询讨厌 0.00 分钟价格? oO
最佳答案
我认为,您忘记了 OR 子语句之间的大括号:
select * from `products`
where (
(`price` >= $min AND `price` <= $max) OR (`sale` >= $min AND `sale` <= $max)
) and `status` = 1 and `sold` = 0 and `deleted` = 0 order by `id` desc limit 12
关于php - mysql 价格范围 with 或 in range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21042919/