最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中組合字段之concat()

 更新時(shí)間:2021年11月27日 17:15:48   作者:李子捌  
這篇文章主要介紹了MySQL中組合字段之concat(),MySQL是關(guān)系型數(shù)據(jù)庫,我們?cè)谑褂玫臅r(shí)候往往會(huì)將對(duì)象的屬性映射成列存儲(chǔ)在表中,因此查詢的到的結(jié)果在不做任何處理的情況下,也是一個(gè)個(gè)單獨(dú)的屬性,需要的朋友可以參考一下

1、簡介

MySQL是關(guān)系型數(shù)據(jù)庫,我們?cè)谑褂玫臅r(shí)候往往會(huì)將對(duì)象的屬性映射成列存儲(chǔ)在表中,因此查詢的到的結(jié)果在不做任何處理的情況下,也是一個(gè)個(gè)單獨(dú)的屬性;如果我們希望在MySQL中查詢返回的結(jié)果集,能夠?qū)⒍鄠€(gè)字段(列)的值組合起來返回、或者經(jīng)過特定的計(jì)算后再返回,就可以使用MySQL提供的字段計(jì)算功能。

字段計(jì)算經(jīng)常會(huì)用到如下兩種:

  • 字段拼接
  • 字段執(zhí)行算術(shù)計(jì)算

2、正文

MySQL中實(shí)現(xiàn)的字段組合都可以在客戶機(jī)中完成,但是直接在MySQL服務(wù)器中實(shí)現(xiàn)字段組合會(huì)比客戶機(jī)速度更快。

2.1 字段拼接

準(zhǔn)備一張user表,插入幾條數(shù)據(jù),如下所示:

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()函數(shù),函數(shù)中可以組合任意多個(gè)元素,這些元素可以是表字段、固定字符等,元素之間使用,分隔,組合的順序和concat()函數(shù)中字符的順序一致。

關(guān)于組合之后的字段名問題?

細(xì)心的小伙伴發(fā)現(xiàn)組合之后的字段名使用的是concat()函數(shù)的整個(gè)函數(shù)體,顯然這種顯示不是我們想要的呀!如果想要指定自己想要的字段名,只需要使用別名即可!

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

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

| user_message     |

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

| 李子捌(漢族)   |

| 張三(回族)     |

| 李四(維吾爾族) |

| 王五(蒙古族)   |

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

別名的用法就是使用as,后面緊跟著的就是你想要指定的字段名。

2.2 字段執(zhí)行算術(shù)計(jì)算

組合字段我們往往不只是簡單的字符串拼接,可能會(huì)涉及到字段與字段之間的算術(shù)預(yù)算,此時(shí)我們就需要使用到MySQL中的算術(shù)操作符。

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

操作符 說明
+
-
*
/

準(zhǔn)備一張product表,插入幾條數(shù)據(jù),如下所示:

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 '產(chǎn)品名稱',

  `price` decimal(10, 2) UNSIGNED NOT NULL COMMENT '產(chǎn)品價(jià)格',

  `number` int(11) NOT NULL COMMENT '產(chǎn)品數(shù)量',

  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;

需求:

查詢目前庫存產(chǎn)品總值

語句:

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   |

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

運(yùn)算符順序問題:

MySQL中運(yùn)算符也是有順序的,和普通運(yùn)算符運(yùn)算順序一樣, (* / ) > (+ -) ,如果在使用組合運(yùn)算符時(shí)一定要注意運(yùn)算符的順序,合理使用()可以約束運(yùn)算符的執(zhí)行順序。

示例:

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中,被除數(shù)為0,并不會(huì)拋出異常,但是會(huì)返回NULL,這是MySQL內(nèi)部對(duì)運(yùn)算做了異常處理。

mysql> select concat(12 / 0);

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

| concat(12 / 0) |

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

| NULL           |

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

1 row in set, 1 warning (0.00 sec)

到此這篇關(guān)于MySQL中組合字段之concat()的文章就介紹到這了,更多相關(guān)MySQL中組合字段concat()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • DBeaver如何實(shí)現(xiàn)導(dǎo)入excel中的大量數(shù)據(jù)

    DBeaver如何實(shí)現(xiàn)導(dǎo)入excel中的大量數(shù)據(jù)

    使用DBeaver導(dǎo)入Excel數(shù)據(jù)需先將文件轉(zhuǎn)換為CSV格式,詳細(xì)步驟包括:將Excel文件另存為CSV,確保列名與數(shù)據(jù)庫表字段對(duì)應(yīng),然后在DBeaver中創(chuàng)建表和導(dǎo)入CSV文件,注意選擇正確的編碼格式以防中文亂碼
    2024-10-10
  • MySQL窗口函數(shù)OVER使用示例詳細(xì)講解

    MySQL窗口函數(shù)OVER使用示例詳細(xì)講解

    這篇文章主要介紹了MySQL窗口函數(shù)OVER()用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Mysql雙主搭建的方法步驟

    Mysql雙主搭建的方法步驟

    本文主要介紹了Mysql雙主搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MySQL NDB Cluster關(guān)于Nginx stream的負(fù)載均衡配置方式

    MySQL NDB Cluster關(guān)于Nginx stream的負(fù)載均衡配置方式

    這篇文章主要介紹了MySQL NDB Cluster關(guān)于Nginx stream的負(fù)載均衡配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • mysql性能優(yōu)化之索引優(yōu)化

    mysql性能優(yōu)化之索引優(yōu)化

    我們首先討論索引,因?yàn)樗羌涌觳樵兊淖钪匾墓ぞ?。?dāng)然還有其他加快查詢的技術(shù),但是最有效的莫過于恰當(dāng)?shù)厥褂盟饕?。下面我們就來介紹索引是什么、它怎樣改善查詢性能、索引在什么情況下可能會(huì)降低性能,以及怎樣為表選擇索引。
    2015-12-12
  • MYSQL中SWITCH語句和循環(huán)語句舉例詳解

    MYSQL中SWITCH語句和循環(huán)語句舉例詳解

    MySQL提供了多種循環(huán)語句來實(shí)現(xiàn)循環(huán)操作,其中包括while循環(huán)、loop循環(huán)、repeat循環(huán)和非標(biāo)準(zhǔn)的goto循環(huán),下面這篇文章主要給大家介紹了關(guān)于MYSQL中SWITCH語句和循環(huán)語句的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • MySQL中的存儲(chǔ)過程異常處理

    MySQL中的存儲(chǔ)過程異常處理

    這篇文章主要介紹了MySQL中的存儲(chǔ)過程異常處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Mysql中返回一個(gè)數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注

    Mysql中返回一個(gè)數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注

    在Mysql中怎樣返回一個(gè)數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注
    2010-04-04
  • MySQL基本增刪改查語句練習(xí)(最新推薦)

    MySQL基本增刪改查語句練習(xí)(最新推薦)

    這篇文章主要介紹了MySQL基本增刪改查語句練習(xí),本文給大家分享sql增刪改查語句是平時(shí)開發(fā)最常用的,需要的朋友可以參考下
    2023-01-01
  • MySQL調(diào)優(yōu)之索引在什么情況下會(huì)失效詳解

    MySQL調(diào)優(yōu)之索引在什么情況下會(huì)失效詳解

    索引的失效,會(huì)大大降低sql的執(zhí)行效率,日常中又有哪些常見的情況會(huì)導(dǎo)致索引失效?下面這篇文章主要給大家介紹了關(guān)于MySQL調(diào)優(yōu)之索引在什么情況下會(huì)失效的相關(guān)資料,需要的朋友可以參考下
    2022-10-10

最新評(píng)論

淮南市| 新河县| 宁安市| 当雄县| 马边| 澄迈县| 京山县| 中江县| 花莲县| 宁波市| 淮滨县| 瓮安县| 逊克县| 陆川县| 龙山县| 太仓市| 织金县| 保康县| 文山县| 黄龙县| 习水县| 察隅县| 贵定县| 荆州市| 镇原县| 射阳县| 保德县| 大安市| 益阳市| 田林县| 汕尾市| 洱源县| 平阳县| 明水县| 余江县| 张家界市| 泽普县| 英德市| 清河县| 五华县| 临澧县|