mysql - "binary string"在MySQL中是什么意思

标签 mysql

我正在阅读 the doc of MySQL .我发现 UNHEX 函数的位置描述为:

For a string argument str, UNHEX(str) interprets each pair of characters in the argument as a hexadecimal number and converts it to the byte represented by the number. The return value is a binary string.

mysql> SELECT UNHEX('4D7953514C');
        -> 'MySQL'
mysql> SELECT X'4D7953514C';
        -> 'MySQL'
mysql> SELECT UNHEX(HEX('string'));
        -> 'string'
mysql> SELECT HEX(UNHEX('1267'));
        -> '1267'

什么是“二进制字符串”?它是一个通用术语还是专门用于 MySQL 的术语?

我认为如果它是一个“二进制”数据,那么它不应该被称为“字符串”(字符数组)。所以我想知道什么是“二进制字符串”?它的意思是“字节数组”吗?

我假设最终每种数据类型都会被转换成二进制数据。 MySQL 中的“字符串类型”也是如此。与“字符串”和“二进制字符串”的不同之处在于,“字符串”具有一些关于当 MySQL 将其从二进制转换为字符串时要使用的编码模式和排序规则的信息。

所以我不太明白的是,为什么 UNHEX('4D7953514C') 返回一个“字符串”'MySQL' 而不是一个由 0 和1s(0100 1101 0111 1001 0101 0011 0101 0001 0100 1100).

最佳答案

术语“二进制字符串”通常表示 0 和 1 的序列。在 MySQL 函数 unhex 的情况下,它采用十六进制值的字符串并将其转换为二进制数,二进制数将表示为字符串。这里没什么好看的。结果将是一个字符串,它是十六进制数转换为二进制数的结果。十六进制数转换成二进制数是四位数。 0 和 1 的结果序列将是结果字符串的二进制表示。

关于mysql - "binary string"在MySQL中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52018606/

相关文章:

python - 使用python将mysql中的值分配给dict

php - MySQL CMS连接问题

php - 选择左连接

mysql - 加载文件路径字符串并将其替换为 MySQL 数据库中该文件的内容

mysql - 在没有 super 权限的情况下在mysql中创建汉明距离函数

php - 如果我绑定(bind)参数,我必须使用 mysql_real_escape_string 吗?

php - 不重复用户正确回答的问题的问题数据库

MySQL:合并几个大表并添加值,优化

php - 未定义索引不知道为什么

mysql - mysql 子查询错误