【问题标题】:mysqli query to count multiple specific words in each db recordmysqli 查询以计算每个数据库记录中的多个特定单词
【发布时间】:2014-08-01 08:28:13
【问题描述】:

我需要一些帮助来计算记录标题字段中的多个特定单词。

这是我的查询

SELECT
    SUM(CASE WHEN `title` LIKE '%fish%' THEN 1 ELSE 0 END) AS count1,
FROM tbl_recipes
GROUP BY recipeID

这是有效的,但如果我想计算多个单词,我不确定我如何实现这一点。

我尝试过类似的方法

SELECT
    SUM(CASE WHEN title LIKE '%fish%' OR WHEN title LIKE '%soup%' THEN 1 ELSE 0 END) AS count1,
FROM tbl_recipes
GROUP BY recipeID

但这引发了一个异常,有谁知道计算数据库字段中特定单词的多个实例的正确方法。

最多可以有 6 个单词需要计数,我需要将它们全部计数为相同的计数,而不是单独计数 :)

谢谢

【问题讨论】:

    标签: sql mysqli count sum case


    【解决方案1】:

    对于个人计数,您必须尝试这样的事情:-

    SELECT
    SUM(CASE WHEN title LIKE '%fish%' THEN 1 ELSE 0 END) AS count1,
    SUM(CASE WHEN title LIKE '%soup%' THEN 1 ELSE 0 END) AS count2,
    SUM(CASE WHEN title LIKE '%fish%' THEN 1 ELSE 0 END) AS count1 +
    SUM(CASE WHEN title LIKE '%soup%' THEN 1 ELSE 0 END) AS count2 AS TOTAL
    FROM tbl_recipes
    GROUP BY recipeID
    

    【讨论】:

    • 感谢您的建议,我将如何将每条记录的总和相加,即 count1 +count2 等?我尝试在查询中使用 Sum(count1)+SUM(count2)as total_matches,但它显示未知列 count1。所以我不能使用这些列吗?非常感谢
    • 不,你不能这样使用它们。总而言之,您可以看到编辑部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2010-12-10
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多