首页 > 解决方案 > Mysql用法“AS”

问题描述

我是一名网络开发人员,我遇到过这个问题......我正在使用 php 和 mysql 开发统计网络应用程序部分。

SELECT
  IF (cat1 = "S4", 1, 0) AS ncat1,
  IF (cat2 = "S4", 1, 0) AS ncat2,
  IF (cat3 = "S4", 1, 0) AS ncat3,
  IF (cat4 = "S4", 1, 0) AS ncat4,
  (ncat1 + ncat2 + ncat3 + ncat4) AS ntotal
FROM
  users

我想得到这样的格式。但它不起作用,未知列 ncat1 所以,我认为全栈开发人员可以更轻松快捷地帮助我,请帮助我......谢谢......

标签: mysql

解决方案


您的ncat1列名和其他列名不在您的(ncat1 + ncat2 + ncat3 + ncat4) AS ntotal行的范围内。所以你不能在那里引用它们。

尝试使用子查询将它们纳入范围,如下所示:

SELECT *, (ncat1 + ncat2 + ncat3 + ncat4) AS ntotal
  FROM (
      SELECT
         IF (cat1 = "S4", 1, 0) AS ncat1,
         IF (cat2 = "S4", 1, 0) AS ncat2,
         IF (cat3 = "S4", 1, 0) AS ncat3,
         IF (cat4 = "S4", 1, 0) AS ncat4
     FROM coursered
      ) subquery

推荐阅读