MySQL中的binary类型使用操作

吾爱主题 阅读:137 2024-04-01 23:52:14 评论:0

本文主要向大家介绍了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()函数:

使用HEX()函数:

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

环境

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

mysql数据库版本:5.7

问题的提出

如题。

步骤

解决方法很简单,备忘。

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

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

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

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

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

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

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容