为什么我的计数功能仅适用于某些表?

时间:2015-02-25 19:52:43

标签: mysql sql

我知道这是一个业余问题,但我已经搜索了我能想到的每一种资源,现在我已经知道了。以下查询适用于我的大多数表,但由于某种原因,它不能处理我迫切需要它的表:

SELECT COUNT(*) FROM radio_r1_own_it WHERE daypart LIKE 'AM';

该查询完全符合我对几乎所有表的要求,但由于某种原因,它返回的值为" 0"在我需要它的表格上(尽管在该表的" daypart"列中有超过20个" AM"的实例)。我检查并仔细检查了我能想到的一切。

我对SQL比较新,但我之前从未遇到过这样的问题。任何人都有任何可能有帮助的想法或资源?非常感谢您的时间!

编辑:我没有足够的声望点在这里发布屏幕截图...但是这里有一个链接,你可以看到一个:http://imgur.com/ZhyEqJY

此表格中有29列。如果有任何其他信息可能有帮助,请告诉我,谢谢!

4 个答案:

答案 0 :(得分:1)

您需要添加如下所示的相似部分:

 where column_name like '%AM%'

当你写like 'AM'时,它正在搜索完整匹配

答案 1 :(得分:0)

LIX语句在sql中确实很慢。如果你有一个时段,那么我假设你有一个日期列。我推荐这样的东西:

SELECT COUNT(*) 
FROM radio_r1_own_it
WHERE HOUR(dateColumn) < 13

答案 2 :(得分:0)

除非您匹配的字符串正好是AM,否则您需要使用通配符来匹配字符串:

SELECT COUNT(*) FROM radio_r1_own_it WHERE daypart LIKE '%AM%';

%匹配AM之前和之后的任意数量的字符。

有关详细信息,请参阅the documentation

答案 3 :(得分:0)

试试这个。

SELECT COUNT(*) FROM radio_r1_own_it WHERE daypart LIKE '%AM%';

如果您想使用计数来订购,

SELECT COUNT(*) FROM radio_r1_own_it WHERE daypart LIKE '%AM%' ORDER BY COUNT(*) DESC;

DESC - 降序

ASC - 升序