我有一个带有订单表的sql数据库,该表的主键为order_no(int)和order_dispatch_date(时间戳)。
我有46行的date(order_dispatch_date)为'2017-12-09',但是当我执行以下查询时,它仅显示45行:

select * from orders where date(order_dispatch_date)=('2017-12-09')


因此,我进一步调查发现,结果中未显示order_no 1029547,这就是我的问题所在。
我还执行了此查询,这给了我相同的结果,除了order_no为1029547的行之外,还有45行

 SELECT * FROM `orders` WHERE date(order_dispatch_date)=(SELECT date(order_dispatch_date) from orders WHERE order_no=1029547)



为什么在查询中同时显示两个结果中都没有显示order_no 1029547的行:

SELECT * FROM `orders` WHERE date(order_dispatch_date)=date('2017-12-09') and order_no=1029547



请帮助我找出问题所在。

最佳答案

我从订单中复制了时间戳,该订单已显示在order_no 1029547的order_dispatch_date的45行中,当我执行select * from date(order_dispatch_date)='2017-12-09'的订单时,我仍然得到45行

关于mysql - sql查询给出不一致的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47734414/

10-11 01:47