您的位置:首页 > 数据库 > > 正文

mysql的存储方法(MySQL中的binary类型使用操作)

更多 时间:2022-03-30 00:51:32 类别:数据库 浏览量:1017

mysql的存储方法

MySQL中的binary类型使用操作

本文主要向大家介绍了MySQL数据库之MySQL的binary类型操作,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

示例数据表:

  • ?
  • 1
  • 2
  • 3
  • CREATE TABLE test_bin (
  •   bin_id BINARY(16) NOT NULL
  • ) Engine=InnoDB;
  • 插入数据(内容是一个32位的UUID字符串值):

    INSERT INTO test_bin(bin_id) VALUES(UNHEX(‘FA34E10293CB42848573A4E39937F479‘));

    INSERT INTO test_bin(bin_id) VALUES(UNHEX(?));

    INSERT INTO test_bin(bin_id) VALUES(x‘FA34E10293CB42848573A4E39937F479‘);

    查询数据:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • SELECT HEX(bin_id) AS bin_id FROM test_bin;
  •  
  • SELECT HEX(bin_id) AS bin_id FROM test_bin WHERE bin_id = UNHEX(‘FA34E10293CB42848573A4E39937F479‘);
  • SELECT HEX(bin_id) AS bin_id FROM test_bin WHERE bin_id = UNHEX(?);
  •  
  • SELECT HEX(bin_id) AS bin_id FROM test_bin WHERE bin_id = x‘FA34E10293CB42848573A4E39937F479‘;
  • 查询结果:

    bin_id

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

    FA34E10293CB42848573A4E39937F479

    备注:使用MySQL内置的 UUID() 创建一个函数返回 BINARY(16)类型的UUID值

    CREATE FUNCTION uu_id() RETURNS binary(16) RETURN UNHEX(REPLACE(UUID(),‘-‘,‘‘));

    CREATE FUNCTION uu_id() RETURNS binary(16) RETURN UNHEX(REVERSE(REPLACE(UUID(),‘-‘,‘‘)));

    使用:

    INSERT INTO test_bin(bin_id) VALUES(uu_id());

    范例1:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • Connection conn = null;
  •  Statement stat = null;
  •  ResultSet rs = null;
  •  try {
  •   conn = JDBCUtils.getConnection(map);
  •   String sql = "select HEX(RECID) AS recid,STDNAME AS stdname ,HEX(RESID) AS resid from jyyt";
  •   stat = conn.createStatement();
  •   rs = stat.executeQuery(sql);
  •   while (rs.next()) {
  •   String recid = rs.getString("recid");
  •   String staname = rs.getString("stdname");
  •   String resid = rs.getString("resid");
  •   System.out.println(recid + "---" + staname + "---" + resid);
  •   }
  •  } catch (SQLException e) {
  •   e.printStackTrace();
  •  } finally {
  •   JDBCUtils.closeConnection(conn, stat, rs);
  •  }
  • 范例2:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • SELECT
  •  y.UNITID AS unitid,
  •  y.UNITNAME AS unitName,
  •  y.WARNINGTYPE AS warningType
  • FROM
  •  GXJT_YJ AS y
  •  LEFT JOIN md_org AS m ON m.RECID = y.UNITID
  •  LEFT JOIN PMS_COMPANY_INFO AS p ON m.RECID = p.UNITID
  • WHERE
  •  HEX(m.parents) LIKE '%66F7B47C80000101D5E8ABF15CD9DA73%'
  • AND y.WARNINGTYPE = 'REGISTRATION_DIFFERENT'
  • 未使用HEX()函数:

    mysql的存储方法(MySQL中的binary类型使用操作)

    使用HEX()函数:

    mysql的存储方法(MySQL中的binary类型使用操作)

    补充知识:【MySQL】如何使用Navicat查看mysql数据库中varbinary变量内容?

    环境

    Navicat软件版本:Navicat premium 11.1.13(64-bit)

    mysql数据库版本:5.7

    问题的提出

    如题。

    步骤

    解决方法很简单,备忘。

    1、数据库表的设计如下,表中photo变量类型为varbinary。

    mysql的存储方法(MySQL中的binary类型使用操作)

    2、Navicat软件显示为乱码,如下。

    mysql的存储方法(MySQL中的binary类型使用操作)

    3、右键“保存数据为”,保存为1.txt。文件名随便起。

    mysql的存储方法(MySQL中的binary类型使用操作)

    4、用UE打开,显示如下。

    mysql的存储方法(MySQL中的binary类型使用操作)

    以上这篇MySQL中的binary类型使用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/xiangwang2016/article/details/102457469

    标签:mysql binary
    您可能感兴趣