当前位置: 首页 > 知识库问答 >
问题:

Mysql用法“as”

韦熙云
2023-03-14

我是一个web开发人员,我曾经面对过这个问题。。。我正在开发统计网页应用程序部分使用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

我想像这样得到ntotal格式。但是它不工作,未知列ncat1所以,我想fullstack开发人员可以帮助我更容易和快速的帮助我请。。。。谢谢。。。

共有2个答案

江亮
2023-03-14

您的ncat1和其他列名不在(ncat1+ncat2+ncat3+ncat4)作为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
彭衡
2023-03-14

您的别名(即NCAT1)不能在SQL语句中使用。

我将使用一个简单的子查询来解决这个问题:

SELECT  ncat1, ncat2, ncat3, ncat4,
        (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
          users
        ) a
 类似资料:
  • 问题内容: 我正在使用ElasticSearch作为网站的搜索组件。被索引并最终被搜索的数据与保存在MySQL DB中的数据相同。 我的解决方法是在发生相应的CRUD MySQL操作时在索引中添加/删除/修改数据。 例如,创建操作如下所示: 如果数据是在MySQL中删除/更新的,那么我将其删除或从索引中更新。 这是将MySQL与ElasticSearch(或其他任何类似的技术,例如Sphinx)结

  • 问题内容: 这是我要使用的两条语句,但是它们返回错误消息: 和 之所以会有问号,是因为我在PHP的PDO中使用了参数化的,准备好的语句。但是,我也尝试过手动使用数据执行此操作,但这确实不起作用。 虽然我想知道为什么每个都不起作用,但如果可以使第一个查询起作用,我希望使用第一个查询。 问题答案: 您不能使用功能的IF控制块OUTSIDE。这样会影响您的两个查询。 将EXISTS子句改为IF函数中的子

  • 本文向大家介绍MYSQL GROUP BY用法详解,包括了MYSQL GROUP BY用法详解的使用技巧和注意事项,需要的朋友参考一下 背景介绍 最近在设计数据库的时候因为开始考虑不周,所以产生了大量的重复数据。现在需要把这些重复的数据删除掉,使用到的语句就是Group By来完成。为了进一步了解这条语句的作用,我打算先从简单入手。 建一个测试表 查看表结构 desc test_group 插入数

  • 本文向大家介绍ASP使用MySQL数据库的方法,包括了ASP使用MySQL数据库的方法的使用技巧和注意事项,需要的朋友参考一下 MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实ASP也可以使用MYSQL数据库开发动态页面,小编我也是刚刚学会,不敢独享,所以特写了这篇文章供大伙参考。 我的环境是WINDOWS9

  • 本文向大家介绍详解MySQL中UNION的用法,包括了详解MySQL中UNION的用法的使用技巧和注意事项,需要的朋友参考一下 如果想选择其他几个表中的行或从一个单一的表作为一个单独的结果集行的几个集会,那么可以使用的UNION。 UNION在MySQL4.0以上版本才能可以使用。本节说明如何使用它。 假设有两个表,潜在和实际的客户列表,供应商购买耗材合并所有三个表中的姓名和地址,来创建一个单一的

  • 本文向大家介绍mysql-joins具体用法说明,包括了mysql-joins具体用法说明的使用技巧和注意事项,需要的朋友参考一下 JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻。 假设我们有两个表,Table_A和Table_B。这两个表中的数据如下所示: Join 语法: 1、Inner JOIN: (内连接) 这是最简单、最容易理

  • 本文向大家介绍浅析MySQL replace into 的用法,包括了浅析MySQL replace into 的用法的使用技巧和注意事项,需要的朋友参考一下 在 SQL Server 中可以这样处理: 那么 MySQL 中如何实现这样的逻辑呢?别着急!MySQL 中有更简单的方法: replace into replace into 跟 insert 功能类似,不同点在于:replace int

  • 本文向大家介绍Mysql之SQL Mode用法详解,包括了Mysql之SQL Mode用法详解的使用技巧和注意事项,需要的朋友参考一下 一、Mysql SQL Mode简介 通常来说MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何