Mysql 带有计数或求和问题的SQL案例

Mysql 带有计数或求和问题的SQL案例,mysql,count,sum,case,Mysql,Count,Sum,Case,我尝试了一些选择,但它根本不起作用或不适合我的需要 这是关于以下SQL的(这不起作用,但最接近我需要的): 因此,基本上,得分最多的条目以顶部结尾。当3个案例匹配时,参考值将得到3分。 代码是动态的,因此它也可以是4、5、6、7或更多情况 我希望这对你有意义。 提前感谢。您不能在同一选择列表中重复使用计算值(如查询中的val1) SELECT *,val1+val2+val3 AS `reference_value` FROM ( CASE WHEN r.content LIKE '%

我尝试了一些选择,但它根本不起作用或不适合我的需要

这是关于以下SQL的(这不起作用,但最接近我需要的):

因此,基本上,得分最多的条目以顶部结尾。当3个案例匹配时,
参考值
将得到3分。 代码是动态的,因此它也可以是4、5、6、7或更多情况

我希望这对你有意义。
提前感谢。

您不能在同一
选择
列表中重复使用计算值(如查询中的
val1

SELECT *,val1+val2+val3 AS `reference_value` FROM (
    CASE WHEN r.content LIKE '% word1 %' 
        then 1 
        else 0 
    END AS `val1`
   ,CASE WHEN r.content LIKE '% word2 %' 
       then 1 
       else 0 
   END AS `val2`
  ,CASE WHEN r.city LIKE 'cityname' 
       then 1 
       else 0 
  END AS `val3`
  ,  
  FROM `testimonials` as r 
  WHERE `accepted`='1' 
)
ORDER BY `reference_value`
使用子查询,或重复大小写以求和它们的值。在这种情况下,我的首选是子查询,但实际需求和实际执行计划(explain)可以随时覆盖它

SELECT
  val1,val2,val3,
  val1+val2+val3 as reference_value
FROM (
  SELECT CASE WHEN r.`content` LIKE '% word1 %' 
            then 1 
            else 0 
      END AS `val1`
    , CASE WHEN r.`content` LIKE '% word2 %' 
           then 1 
           else 0 
      END AS `val2`
    , CASE WHEN r.`city` LIKE 'cityname' 
           then 1 
           else 0 
      END AS `val3`
  FROM `testimonials` as r 
  WHERE `accepted`='1' 
) TMP
ORDER BY `reference_value`

不能在同一
SELECT
列表中重复使用计算值(如查询中的
val1

使用子查询,或重复大小写以求和它们的值。在这种情况下,我的首选是子查询,但实际需求和实际执行计划(explain)可以随时覆盖它

SELECT
  val1,val2,val3,
  val1+val2+val3 as reference_value
FROM (
  SELECT CASE WHEN r.`content` LIKE '% word1 %' 
            then 1 
            else 0 
      END AS `val1`
    , CASE WHEN r.`content` LIKE '% word2 %' 
           then 1 
           else 0 
      END AS `val2`
    , CASE WHEN r.`city` LIKE 'cityname' 
           then 1 
           else 0 
      END AS `val3`
  FROM `testimonials` as r 
  WHERE `accepted`='1' 
) TMP
ORDER BY `reference_value`

不能在同一
SELECT
列表中重复使用计算值(如查询中的
val1

使用子查询,或重复大小写以求和它们的值。在这种情况下,我的首选是子查询,但实际需求和实际执行计划(explain)可以随时覆盖它

SELECT
  val1,val2,val3,
  val1+val2+val3 as reference_value
FROM (
  SELECT CASE WHEN r.`content` LIKE '% word1 %' 
            then 1 
            else 0 
      END AS `val1`
    , CASE WHEN r.`content` LIKE '% word2 %' 
           then 1 
           else 0 
      END AS `val2`
    , CASE WHEN r.`city` LIKE 'cityname' 
           then 1 
           else 0 
      END AS `val3`
  FROM `testimonials` as r 
  WHERE `accepted`='1' 
) TMP
ORDER BY `reference_value`

不能在同一
SELECT
列表中重复使用计算值(如查询中的
val1

使用子查询,或重复大小写以求和它们的值。在这种情况下,我的首选是子查询,但实际需求和实际执行计划(explain)可以随时覆盖它

SELECT
  val1,val2,val3,
  val1+val2+val3 as reference_value
FROM (
  SELECT CASE WHEN r.`content` LIKE '% word1 %' 
            then 1 
            else 0 
      END AS `val1`
    , CASE WHEN r.`content` LIKE '% word2 %' 
           then 1 
           else 0 
      END AS `val2`
    , CASE WHEN r.`city` LIKE 'cityname' 
           then 1 
           else 0 
      END AS `val3`
  FROM `testimonials` as r 
  WHERE `accepted`='1' 
) TMP
ORDER BY `reference_value`

始终提供一些数据集和预期结果。无论你如何清楚地“用语言”解释它。有这个:。。。想要这个:。。。将以最快的方式正确回答始终提供一些数据集和预期结果。无论你如何清楚地“用语言”解释它。有这个:。。。想要这个:。。。将以最快的方式正确回答始终提供一些数据集和预期结果。无论你如何清楚地“用语言”解释它。有这个:。。。想要这个:。。。将以最快的方式正确回答始终提供一些数据集和预期结果。无论你如何清楚地“用语言”解释它。有这个:。。。想要这个:。。。将以最快的方式正确回答感谢您的快速回复!我仍然得到错误:#1054-字段列表中的未知列'val1'是的,我忘记删除您原来的总和行。感谢您的快速回复!我仍然得到错误:#1054-字段列表中的未知列'val1'是的,我忘记删除您原来的总和行。感谢您的快速回复!我仍然得到错误:#1054-字段列表中的未知列'val1'是的,我忘记删除您原来的总和行。感谢您的快速回复!我仍然得到错误:#1054-字段列表中的未知列'val1'是的,我忘记删除您原来的总和行。固定的