php - 使用 MySQL 过滤数字

标签 php mysql sql database

我正在运行以下 MySQL 查询以过滤价格在特定范围内的列表的数量。

SELECT `listing_id`, `price` FROM (`listings`) 
WHERE `post_timestamp` BETWEEN (NOW() - 0 AND NOW() - 5) 
AND `price` > '0' AND `price` < '10000'
ORDER BY `post_timestamp` desc

问题:虽然有些行的价格列的值介于 0 到 10,000 之间,但这并没有给我任何结果。

现在下面的 SQL 查询返回正确的结果

SELECT `listing_id`, `price` FROM (`listings`) 
WHERE `post_timestamp` BETWEEN (NOW() - 0 AND NOW() - 5) 
AND `price` < '10000'
ORDER BY `post_timestamp` desc

但是下面的这个查询没有返回任何结果!!

SELECT `listing_id`, `price` FROM (`listings`) 
WHERE `post_timestamp` BETWEEN (NOW() - 0 AND NOW() - 5) 
AND `price` > '0'
ORDER BY `post_timestamp` desc

这让我很困惑,想知道是否有人对此有解释/解决方案?

编辑 下面的代码给我结果!

SELECT `listing_id`, `price` FROM (`listings`) 
WHERE `price` > '0'

字段类型: int(8)

删除引号 周围的数值没有区别

最佳答案

(我发现自己不明白这是什么解释),
所以,简而言之

去掉括号:-

WHERE `post_timestamp` BETWEEN NOW() - 0 AND NOW() - 5 //first where clause
AND `price` < '10000'

它可能会返回零个匹配项,
因为比较时间太短(now() - 5 秒)

检查最近 5 天

WHERE `post_timestamp` BETWEEN DATE_SUB( NOW(), INTERVAL 5 DAY) AND NOW()
AND `price` < 10000

关于php - 使用 MySQL 过滤数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458309/

相关文章:

sql - 如何使用表 B 中的信息更新表 A 中的列

sql - 为什么我无法根据不是主键的条件更新列

php - 如何根据分片 ID 按另一个表的计数对 SQL 查询的结果进行排序?

mysql - 数据表 + 正则表达式 + 服务器端处理

php - 如何防止 imagecreatefrom 创建静态 gif - PHP

mysql - 为什么这个查询不起作用而这个查询却起作用?

php - MySQL 插入 - 来自使用名称数组的输入的值。 (PHP)

mysql - 如果外键为 NULL 或 NOT NULL 则获取数据

php - 有没有什么情况是我们没有主键的?

php - 错误 unicode 导出 csv 文件 - Laravel/Excel