Mysql Select语句不起作用
所以也许这是由于睡眠不足,但我有一个重大的脑功能障碍,并不记得这里发生了什么问题。这里是我的发言:Mysql Select语句不起作用
SELECT DISTINCT `county`, COUNT(*)
FROM `ips`
WHERE `county` != 'NULL' AND `county` != '' AND
EXISTS (SELECT * FROM `pages`
WHERE (`timestamp` BETWEEN FROM_UNIXTIME(?) AND FROM_UNIXTIME(?)))
GROUP BY `county`
我期待的结果是这样的:
County | Number
Some county | 42
Other county | 27
我的页表中有每个页面被用户观看时的时间戳,所以如果他们查看日期之间的一个页面,选择IP表中的县,并将该县的总数填入数字中。我正在使用PDO,并且我在两次传球中使用了strtotime()
。
我目前被卡住了。所有的帮助都受到了重视。希望这不是我忽略的一些愚蠢的小错误。
您无法将null与!=
进行比较,您需要使用的不是null。
SELECT `county`, COUNT(*)
FROM `ips`
WHERE `county` IS NOT NULL AND `county` != '' AND
EXISTS (SELECT 1 FROM `pages`
WHERE (`timestamp` BETWEEN FROM_UNIXTIME(?) AND FROM_UNIXTIME(?)))
GROUP BY `county`
当'GROUP'ed'BY'相同时,'DISTINCT'几乎不需要。 – 2014-12-13 06:54:43
是的你是对的。这不是必需的。 – SMA 2014-12-13 06:55:18
再一次:在'EXISTS'查询中,输出任何字段没有任何意义'EXISTS(SELECT 1 FROM ...)'就足够了。 – 2014-12-13 06:57:32
你的输出是什么? – rjv 2014-12-13 06:52:38
我收到一个空集。时间戳是正确的。我使用一年前至今,并有成千上万的行。我错过了什么,或者做错了什么。我只是不确定。 – user1464971 2014-12-13 06:54:24
'NULL'不等于**任何**(包括另一个'NULL')。 – 2014-12-13 06:55:29