我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql的单列多值存储实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql的单列多值存储实例分析

本篇内容介绍了“mysql的单列多值存储实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    实例

    用bit类型

    • 建表及数据准备

    -- 这里定义了bit(3),表示有3位,第一位1,第二位2,第三位4create table t_bit_demo(   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,   multi_value bit(3) not null default 0);-- 这里插入了1,2,4的组合值insert into t_bit_demo(multi_value) values(b'000');insert into t_bit_demo(multi_value) values(b'001');insert into t_bit_demo(multi_value) values(b'010');insert into t_bit_demo(multi_value) values(b'011');insert into t_bit_demo(multi_value) values(b'100');insert into t_bit_demo(multi_value) values(b'101');insert into t_bit_demo(multi_value) values(b'110');insert into t_bit_demo(multi_value) values(b'111');-- 这里直接插入int值也可以,比如5相当于101-- insert into t_bit_demo(multi_value) values(5);SELECT multi_value+0, BIN(multi_value) FROM t_bit_demo;+---------------+------------------+| multi_value+0 | BIN(multi_value) |+---------------+------------------+| 0             | 0                || 1             | 1                || 2             | 10               || 3             | 11               || 4             | 100              || 5             | 101              || 6             | 110              || 7             | 111              |+---------------+------------------+
    • 位运算查询

    -- 查询第二位有值的数据select multi_value+0,BIN(multi_value) from t_bit_demo where multi_value & 2+---------------+------------------+| multi_value+0 | BIN(multi_value) |+---------------+------------------+| 2             | 10               || 3             | 11               || 6             | 110              || 7             | 111              |+---------------+------------------+-- 查询第三位有值的数据select multi_value+0,BIN(multi_value) from t_bit_demo where multi_value & 4+---------------+------------------+| multi_value+0 | BIN(multi_value) |+---------------+------------------+| 4             | 100              || 5             | 101              || 6             | 110              || 7             | 111              |+---------------+------------------+-- 查询只有第三位有值的数据select multi_value+0,BIN(multi_value) from t_bit_demo where multi_value = 4select multi_value+0,BIN(multi_value) from t_bit_demo where multi_value = 4+---------------+------------------+| multi_value+0 | BIN(multi_value) |+---------------+------------------+| 4             | 100              |+---------------+------------------+
    • 更新

    select id,multi_value+0,BIN(multi_value) from t_bit_demo+----+---------------+------------------+| id | multi_value+0 | BIN(multi_value) |+----+---------------+------------------+| 1  | 0             | 0                || 2  | 1             | 1                || 3  | 2             | 10               || 4  | 3             | 11               || 5  | 4             | 100              || 6  | 5             | 101              || 7  | 6             | 110              || 8  | 7             | 111              |+----+---------------+------------------+-- 将id为7的值移除第二个枚举update t_bit_demo set multi_value = b'100' where id=7select id,multi_value+0,BIN(multi_value) from t_bit_demo where id=7+----+---------------+------------------+| id | multi_value+0 | BIN(multi_value) |+----+---------------+------------------+| 7  | 4             | 100              |+----+---------------+------------------+

    用int/bigint类型

    • 建表及数据准备

    create table t_bigint_demo(   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,   multi_value bigint not null default 0);-- 假设这里定义了1,2,4三个枚举值insert into t_bigint_demo(multi_value) values(0);insert into t_bigint_demo(multi_value) values(1);insert into t_bigint_demo(multi_value) values(2);insert into t_bigint_demo(multi_value) values(3);insert into t_bigint_demo(multi_value) values(4);insert into t_bigint_demo(multi_value) values(5);insert into t_bigint_demo(multi_value) values(6);insert into t_bigint_demo(multi_value) values(7);select multi_value from t_bigint_demo+-------------+| multi_value |+-------------+| 0           || 1           || 2           || 3           || 4           || 5           || 6           || 7           |+-------------+
    • 查询

    -- 查询包含第二个枚举的数据select multi_value,BIN(multi_value) from t_bigint_demo where multi_value & 2+-------------+------------------+| multi_value | BIN(multi_value) |+-------------+------------------+| 2           | 10               || 3           | 11               || 6           | 110              || 7           | 111              |+-------------+------------------+-- 查询包含第三个枚举的数据select multi_value,BIN(multi_value) from t_bigint_demo where multi_value & 4+-------------+------------------+| multi_value | BIN(multi_value) |+-------------+------------------+| 4           | 100              || 5           | 101              || 6           | 110              || 7           | 111              |+-------------+------------------+-- 查询值为第三个枚举的数据select multi_value,BIN(multi_value) from t_bigint_demo where multi_value =4+-------------+------------------+| multi_value | BIN(multi_value) |+-------------+------------------+| 4           | 100              |+-------------+------------------+
    • 更新

    select id,multi_value,BIN(multi_value) from t_bigint_demo+----+-------------+------------------+| id | multi_value | BIN(multi_value) |+----+-------------+------------------+| 1  | 0           | 0                || 2  | 1           | 1                || 3  | 2           | 10               || 4  | 3           | 11               || 5  | 4           | 100              || 6  | 5           | 101              || 7  | 6           | 110              || 8  | 7           | 111              |+----+-------------+------------------+-- 将id为7的值移除第二个枚举update t_bigint_demo set multi_value = b'100' where id=7select id,multi_value,BIN(multi_value) from t_bigint_demo where id=7+----+-------------+------------------+| id | multi_value | BIN(multi_value) |+----+-------------+------------------+| 7  | 4           | 100              |+----+-------------+------------------+

    用varchar类型

    • 建表及数据准备

    create table t_varchar_demo(   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,   multi_value varchar(255) not null default '');-- 假设这里定义了1,2,4三个枚举值insert into t_varchar_demo(multi_value) values('1');insert into t_varchar_demo(multi_value) values('2');insert into t_varchar_demo(multi_value) values('1,2');insert into t_varchar_demo(multi_value) values('4');insert into t_varchar_demo(multi_value) values('1,4');insert into t_varchar_demo(multi_value) values('2,4');insert into t_varchar_demo(multi_value) values('1,2,4');select multi_value from t_varchar_demo+-------------+| multi_value |+-------------+| 1           || 2           || 1,2         || 4           || 1,4         || 2,4         || 1,2,4       |+-------------+
    • 查询

    -- 查询包含第二个枚举的数据select multi_value from t_varchar_demo where find_in_set('2',multi_value)+-------------+| multi_value |+-------------+| 2           || 1,2         || 2,4         || 1,2,4       |+-------------+-- 查询包含第三个枚举的数据select multi_value from t_varchar_demo where find_in_set('4',multi_value)+-------------+| multi_value |+-------------+| 4           || 1,4         || 2,4         || 1,2,4       |+-------------+-- 查询只有第三个枚举的数据select multi_value from t_varchar_demo where multi_value = '4'+-------------+| multi_value |+-------------+| 4           |+-------------+
    • 更新

    select * from t_varchar_demo+----+-------------+| id | multi_value |+----+-------------+| 1  | 1           || 2  | 2           || 3  | 1,2         || 4  | 4           || 5  | 1,4         || 6  | 2,4         || 7  | 1,2,4       |+----+-------------+-- 将id为7的值移除第二个枚举update t_varchar_demo set multi_value = '1,4' where id=7select * from t_varchar_demo where id=7+----+-------------+| id | multi_value |+----+-------------+| 7  | 1,4         |+----+-------------+

    用set类型

    • 建表及数据准备

    create table t_set_demo(   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,   multi_value set('1','2','4') not null default '');insert into t_set_demo(multi_value) values('');insert into t_set_demo(multi_value) values('1');insert into t_set_demo(multi_value) values('2');insert into t_set_demo(multi_value) values('1,2');insert into t_set_demo(multi_value) values('4');insert into t_set_demo(multi_value) values('1,4');insert into t_set_demo(multi_value) values('2,4');insert into t_set_demo(multi_value) values('1,2,4');
    • 查询

    -- 查询包含第二个枚举的数据,可以用位运算也可以用find_in_setselect multi_value from t_set_demo where multi_value&2select multi_value from t_set_demo where find_in_set('2',multi_value)+-------------+| multi_value |+-------------+| 2           || 1,2         || 2,4         || 1,2,4       |+-------------+-- 查询包含第三个枚举的数据,可以用位运算也可以用find_in_setselect multi_value from t_set_demo where multi_value&4select multi_value from t_set_demo where find_in_set('4',multi_value)+-------------+| multi_value |+-------------+| 4           || 1,4         || 2,4         || 1,2,4       |+-------------+-- 查询值为第三个枚举的数据select multi_value from t_set_demo where multi_value='4'+-------------+| multi_value |+-------------+| 4           |+-------------+
    • 更新

    select * from t_set_demo+----+-------------+| id | multi_value |+----+-------------+| 1  |             || 2  | 1           || 3  | 2           || 4  | 1,2         || 5  | 4           || 6  | 1,4         || 7  | 2,4         || 8  | 1,2,4       |+----+-------------+-- 将id为7的值移除第二个枚举update t_set_demo set multi_value = '1,4' where id=7select * from t_set_demo where id=7select * from t_set_demo where id=7+----+-------------+| id | multi_value |+----+-------------+| 7  | 1,4         |+----+-------------+

    “mysql的单列多值存储实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    mysql的单列多值存储实例分析

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

    下载Word文档

    猜你喜欢

    mysql的单列多值存储实例分析

    本篇内容介绍了“mysql的单列多值存储实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实例用bit类型建表及数据准备-- 这里定义了
    2023-06-29

    mysql存储过程与存储函数实例分析

    这篇文章主要介绍了mysql存储过程与存储函数实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql存储过程与存储函数实例分析文章都会有所收获,下面我们一起来看看吧。存储过程简介是一组经过 预先编译
    2022-11-30

    MySQL的存储函数与存储过程实例代码分析

    这篇文章主要介绍了MySQL的存储函数与存储过程实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL的存储函数与存储过程实例代码分析文章都会有所收获,下面我们一起来看看吧。MySQL存储过程与存
    2023-03-06

    Android中的存储实例分析

    本文小编为大家详细介绍“Android中的存储实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android中的存储实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、存储在App内部最简单的一种。
    2023-06-26

    Mysql内储存JSON字符串实例分析

    本文小编为大家详细介绍“Mysql内储存JSON字符串实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql内储存JSON字符串实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言JSON 可以
    2023-06-29

    mysql事务与存储引擎实例分析

    这篇文章主要介绍了mysql事务与存储引擎实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql事务与存储引擎实例分析文章都会有所收获,下面我们一起来看看吧。一、MySQL事务1、事务的概念(1)事务
    2023-06-30

    mysql InnoDB存储引擎的示例分析

    这篇文章主要介绍了mysql InnoDB存储引擎的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、概念InnoDB是MySQL默认的存储引擎,如果需要其不支持的特
    2023-06-14

    mysql的树形结构存储及查询实例分析

    这篇文章主要介绍“mysql的树形结构存储及查询实例分析”,在日常操作中,相信很多人在mysql的树形结构存储及查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql的树形结构存储及查询实例分析
    2023-06-29

    编程热搜

    目录