【问题标题】:Counting how many times each element appeared in the "search"计算每个元素在“搜索”中出现的次数
【发布时间】:2014-06-12 18:38:45
【问题描述】:

请看下面的查询

SELECT `indexVal` FROM `key_word`WHERE `hashed_word` IN ('001','01v','0ji','0k9','0vc','0@v','0%d','13#' ,'148' ,'1e1','1sx','1v$','1@c','1?b','1?k','226','2kl','2ue','2*l','2?4','36h','3au','3us','4d~')

这将选择indexVal 的列表。下面是结果的小屏幕截图。

但这不是我需要的。我需要知道每个indexVal 出现在“搜索”中的“多少次”。例如,像

[1,400] [30,30000] [5555,78789]

在上面,假设每个单独的括号代表表格中的一行。第一项是第一行,代表indexVal。第二项是第二列,表示indexVal在搜索中出现的次数。

我的SQL知识不好,现在开始看东西了。那么,我该怎么做呢?感谢您的建议。

我需要知道每个项目在“搜索”中出现了多少次,而不是在“表格”中

【问题讨论】:

    标签: mysql sql database select count


    【解决方案1】:

    试试这个:

    select indexval,count(indexval) from key_word where hashed_word IN ('001','01v','0ji','0k9','0vc','0@v','0%d','13#' ,'148' ,'1e1','1sx','1v$','1@c','1?b','1?k','226','2kl','2ue','2*l','2?4','36h','3au','3us','4d~')    group by indexval
    

    【讨论】:

    • 嗨,你错过了Hashed words in的东西
    【解决方案2】:

    你可以使用计数

    SELECT 
    `indexVal`,count(*) as `total` 
    FROM `key_word`
    where
    `hashed_word` IN ('001','01v','0ji','0k9','0vc','0@v','0%d','13#' ,'148' ,'1e1','1sx','1v$','1@c','1?b','1?k','226','2kl','2ue','2*l','2?4','36h','3au','3us','4d~')
    group by `indexVal`
    

    【讨论】:

    • 我认为您缺少WHERE
    • 谢谢,您知道如何加快速度吗?需要 2 秒。
    • 您需要使用EXPLAIN 后跟您的查询以查看发生了什么。我想你在 hashed_word 上缺少索引
    • 不,这是计算indexVal 在“表”中出现的次数。这不是我需要的。我需要知道它们多次出现在“搜索”中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2021-07-25
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多