我有一个电话数据库,其中有一个“方向”字段,以呼叫的方向(进或出)命名。我的问题是,当我搜索“in”或“out”电话时,号码完全错误。
示例:
5 月份,
总来电(进 + 出):13622
来电:12637 外
来电:985
SELECT `start`, `direction`, `ref_id`
FROM `call_list`
WHERE `did` = 'xxxx'
AND `start` >= '2013-05-01 00:00:00'
AND `start` < '2013-06-01 00:00:00'
以上是基于将上述查询转储到 CSV 并实际查看列表的准确计数。但是,当我添加“方向”搜索时,返回的数字完全关闭:
SELECT `start`, `direction`, `ref_id`
FROM `call_list`
WHERE `did` = 'xxxx'
AND `start` >= '2013-05-01 00:00:00'
AND `start` < '2013-06-01 00:00:00'
AND `direction` = 'In'
...将导致总数为 13461,并且
SELECT `start`, `direction`, `ref_id`
FROM `call_list`
WHERE `did` = 'xxxx'
AND `start` >= '2013-05-01 00:00:00'
AND `start` < '2013-06-01 00:00:00'
AND `direction` = 'Out'
..产生的总计数为 11018。
因此,如果我分组:
SELECT `direction`, count(*)
FROM `call_list`
WHERE `did` = 'xxxx'
AND `start` >= '2013-05-01 00:00:00'
AND `start` < '2013-06-01 00:00:00'
GROUP BY `direction`
...我得到了正确的计数,这一切都很好,除了有时我需要分别对“输入”或“输出”计数运行查询,所以我的数字是关闭的。
“方向”列是 varchar(3) utf8_unicode_ci。
如果有人能解释为什么我会收到流浪汉计数,我将不胜感激。
提前致谢