iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中组合字段之concat()
  • 665
分享到

MySQL中组合字段之concat()

2024-04-02 19:04:59 665人浏览 八月长安
摘要

目录1、简介2、正文2.1 字段拼接2.2 字段执行算术计算1、简介 Mysql是关系型数据库,我们在使用的时候往往会将对象的属性映射成列存储在表中,因此查询的到的结果在不做任何处理

1、简介

Mysql是关系型数据库,我们在使用的时候往往会将对象的属性映射成列存储在表中,因此查询的到的结果在不做任何处理的情况下,也是一个个单独的属性;如果我们希望在mysql中查询返回的结果集,能够将多个字段(列)的值组合起来返回、或者经过特定的计算后再返回,就可以使用Mysql提供的字段计算功能。

字段计算经常会用到如下两种:

  • 字段拼接
  • 字段执行算术计算

2、正文

MySQL中实现的字段组合都可以在客户机中完成,但是直接在MySQL服务器中实现字段组合会比客户机速度更快。

2.1 字段拼接

准备一张user表,插入几条数据,如下所示:


SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for user

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`  (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',

  `nation` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '民族',

  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES (1, '李子捌', '汉族');

INSERT INTO `user` VALUES (2, '张三', '回族');

INSERT INTO `user` VALUES (3, '李四', '维吾尔族');

INSERT INTO `user` VALUES (4, '王五', '蒙古族');

SET FOREIGN_KEY_CHECKS = 1;

需求:

获取用户的姓名和民族组合信息

语句:


mysql> select concat(name, '(',nation, ')')   from user;

+---------------------------------+

| concat(name, '(',nation, ')') |

+---------------------------------+

| 李子捌(汉族)                  |

| 张三(回族)                    |

| 李四(维吾尔族)                |

| 王五(蒙古族)                  |

+---------------------------------+

解析:

这里使用了concat()函数,函数中可以组合任意多个元素,这些元素可以是表字段、固定字符等,元素之间使用,分隔,组合的顺序和concat()函数中字符的顺序一致。

关于组合之后的字段名问题?

细心的小伙伴发现组合之后的字段名使用的是concat()函数的整个函数体,显然这种显示不是我们想要的呀!如果想要指定自己想要的字段名,只需要使用别名即可!


mysql> select concat(name, '(',nation, ')') as user_message  from user;

+------------------+

| user_message     |

+------------------+

| 李子捌(汉族)   |

| 张三(回族)     |

| 李四(维吾尔族) |

| 王五(蒙古族)   |

+------------------+

别名的用法就是使用as,后面紧跟着的就是你想要指定的字段名。

2.2 字段执行算术计算

组合字段我们往往不只是简单的字符串拼接,可能会涉及到字段与字段之间的算术预算,此时我们就需要使用到MySQL中的算术操作符。

MySQL提供了加减乘除操作符如下所示:

操作符 说明
+
-
*
/

准备一张product表,插入几条数据,如下所示:


SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;



-- ----------------------------

-- Table structure for product

-- ----------------------------

DROP TABLE IF EXISTS `product`;

CREATE TABLE `product`  (

  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品名称',

  `price` decimal(10, 2) UNSIGNED NOT NULL COMMENT '产品价格',

  `number` int(11) NOT NULL COMMENT '产品数量',

  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- Records of product

-- ----------------------------

INSERT INTO `product` VALUES (1, 'Apple iPhone 13 (A2634)', 6799.00, 22);

INSERT INTO `product` VALUES (2, 'HUAWEI P50 Pro', 6488.00, 88);

INSERT INTO `product` VALUES (3, 'MIX4', 4999.00, 30);

INSERT INTO `product` VALUES (4, 'OPPO Find X3', 3999.00, 15);

INSERT INTO `product` VALUES (5, 'vivo X70 Pro+', 5999.00, 27);

SET FOREIGN_KEY_CHECKS = 1;

需求:

查询目前库存产品总值

语句:


mysql> select product_name, concat(price * number) as gross_value from product;

+-------------------------+-------------+

| product_name            | gross_value |

+-------------------------+-------------+

| Apple iPhone 13 (A2634) | 149578.00   |

| HUAWEI P50 Pro          | 570944.00   |

| MIX4                    | 149970.00   |

| OPPO Find X3            | 59985.00    |

| vivo X70 Pro+           | 161973.00   |

+-------------------------+-------------+

运算符顺序问题:

MySQL中运算符也是有顺序的,和普通运算符运算顺序一样, (* / ) > (+ -) ,如果在使用组合运算符时一定要注意运算符的顺序,合理使用()可以约束运算符的执行顺序。

示例:


mysql> select concat(12 - 3 * 4);

+--------------------+

| concat(12 - 3 * 4) |

+--------------------+

| 0                  |

+--------------------+

1 row in set (0.00 sec)

mysql> select concat((12 - 3) * 4);

+----------------------+

| concat((12 - 3) * 4) |

+----------------------+

| 36                   |

+----------------------+

1 row in set (0.00 sec)

值得注意的是MySQL中,被除数为0,并不会抛出异常,但是会返回NULL,这是MySQL内部对运算做了异常处理。


mysql> select concat(12 / 0);

+----------------+

| concat(12 / 0) |

+----------------+

| NULL           |

+----------------+

1 row in set, 1 warning (0.00 sec)

到此这篇关于MySQL中组合字段之concat()的文章就介绍到这了,更多相关MySQL中组合字段concat()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中组合字段之concat()

本文链接: https://www.lsjlt.com/news/158616.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中组合字段之concat()
    目录1、简介2、正文2.1 字段拼接2.2 字段执行算术计算1、简介 MySQL是关系型数据库,我们在使用的时候往往会将对象的属性映射成列存储在表中,因此查询的到的结果在不做任何处理...
    99+
    2024-04-02
  • python中DataFrame数据合并merge()和concat()方法怎么用
    这篇文章主要讲解了“python中DataFrame数据合并merge()和concat()方法怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中DataFrame...
    99+
    2023-07-02
  • python中DataFrame数据合并merge()和concat()方法详解
    目录merge()1.常规合并①方法1②方法2重要参数合并方式 left right outer inner2.多对一合并3.多对多合并concat()1.相同字段的表首位...
    99+
    2024-04-02
  • 怎么理解MySQL中组合字段的oncat()
    本篇文章给大家分享的是有关怎么理解MySQL中组合字段的oncat(),小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、简介MySQL是关系型数据库,我们在使用的时候往往会将对...
    99+
    2023-06-21
  • MySQL concat() 创建要在查询中使用的列名?
    要创建要在查询中使用的列名称,您需要通过 set 命令使用用户定义的变量。语法如下 -SET @anyVariableName := ( SELECT CONCAT ( "SELECT",...
    99+
    2023-10-22
  • 怎么在mysql中使用left()和right()截取字符串
    这篇文章将为大家详细讲解有关怎么在mysql中使用left()和right()截取字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、left():从字符串...
    99+
    2023-06-14
  • mysql中适合加索引的字段有哪些
    这篇文章将为大家详细讲解有关mysql中适合加索引的字段有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据库中字段适合添加索引的有表中某个字段值离散度越高越适合,占...
    99+
    2024-04-02
  • MySQL修改字段类型之modify
    背景:         需要给表里某个字段修改字段类型,将varchar类型修改为float 语法一:         alter table 表名 alter column 字段名 变更后的字段类型。         这个语法会执行报错,...
    99+
    2023-09-01
    mysql 数据库 sql
  • 使用Java8进行分组(多个字段的组合分组)
    目录java8分组 传统写法(单个字段分组)java8分组 传统写法(多个字段分组)分析:多个分组条件 与 单个分组条件 两种写法多个字段的优雅写法再度优化在SQL中经常会用到分组,...
    99+
    2024-04-02
  • mysql中添加字段
    一、mysql中不同位置增加字段 增加字段(在特定的字段后增加) alter table 表名 add 需要修改/增加的信息 afer 字段名(在哪个字段后增加) alter table dept Add column name varch...
    99+
    2023-08-22
    mysql 数据库 java
  • SQL中怎么实现表中字段的组合累加排序
    这篇文章给大家介绍SQL中怎么实现表中字段的组合累加排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。有表如下:1      10   &nbs...
    99+
    2024-04-02
  • java 对List集合中元素对象按字段分组,并收集指定字段的值
    一、实现:对已有对象集合List ,需要获取Persion对象的字段 name分组, 并对年龄age字段值做收集 二、字段分组收集方法  注:由于实际业务只有String类型跟数字类型,所以只对String跟Object两种类型判空 ...
    99+
    2023-09-04
    java stream lambda
  • mysql怎么删除字段列表中的字段
    要删除字段列表中的字段,可以使用ALTER TABLE语句来删除字段。 例如,要删除表中的字段字段名,可以使用以下语句: ALTER...
    99+
    2024-05-13
    mysql
  • sql怎么把两个字段合并到一个字段中
    在SQL中,可以使用CONCAT函数来合并两个字段到一个字段中。例如,假设有一个students表,包含first_name和las...
    99+
    2024-04-09
    sql
  • mysql中的日期字段
    这篇文章主要介绍mysql中的日期字段,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql中的日期字段有:1、DATE;2、TIME;3、YEAR;4、DATETIME;5、TI...
    99+
    2024-04-02
  • MySQL中添加新字段
    © Ptw-cwl 要在MySQL中添加新字段,您可以使用ALTER TABLE语句。 以下是添加新字段的基本语法: ALTER TABLE table_name ADD column_name datatype; 其中: t...
    99+
    2023-08-17
    mysql 数据库 sql mysql添加字段 java
  • MySQL不同表之前的字段复制
    有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写: UPDATE tb_1 SET content_target = content_source; ...
    99+
    2024-04-02
  • mysql分组后合并显示一个字段的多条数据方式
    目录mysql分组合并显示一个字段多条数据表中数据如下mysql多字段分组mysql多字段分组GROUP BY与ORDER BY一起使用(分组排序)使用having过滤分组...
    99+
    2024-04-02
  • mysql多字段联合主键怎么创建
    在MySQL中,可以通过在CREATE TABLE语句中使用PRIMARY KEY关键字来定义多字段联合主键。以下是一个示例: CR...
    99+
    2024-04-09
    mysql
  • php字段是否在数组中
    PHP是一种流行的编程语言,许多Web开发人员使用它来构建动态网站。与其他编程语言一样,PHP提供了一系列内置函数,其中包括一个用于检查字段是否在数组中的函数。在本文中,我们将探讨这个函数的用法和语法,并提供一些示例来帮助您更好地理解它的工...
    99+
    2023-05-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作