mysql - 在 mySQL 中将十六进制字符串转换为数字

标签 mysql hex varchar

我有一列的值为“11B3”。我想编写一个 SQL 语句(在 mySQL 中),用 0x1880 与 (&) 该值并返回结果。我一直无法将字符串列视为十六进制数。如有任何帮助,我将不胜感激。

这不起作用:

select szVersion,  hex(szVersion), concat("0x",szVersion)

这按需运行(但不从数据库中提取:

select 0x11bx & 0x1880

最佳答案

使用CONV(szVersion,16,10)。下面是它按预期工作的证明。

您写道您希望得到与以下语句相同的结果:

SELECT 0x11B3 & 0x1880;
-> 4224

所以我们知道期望的结果是数字 4224。

现在对表中的数据做同样的事情:

CREATE TEMPORARY TABLE temp_hex SELECT '11B3' AS szVersion;
SELECT CONV(szVersion,16,10) & 0x1880 FROM temp_hex;
-> 4224

同样的结果。作品:)

关于mysql - 在 mySQL 中将十六进制字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889078/

相关文章:

c - 读取 fat16 img 文件内存位置的值

python - 无效的十六进制值

php - 在 PHP/MySQL 中隐藏过去的事情

php - 将 bool 搜索字符串拆分为其组成部分/计算导致 SQL SELECT 匹配的原因

php - 从谷歌地图 url ftid(十六进制)获取纬度/经度

sql - 按 varchar 列排序

mysql - 更新 MySQL 表中的 Varchar 条目

oracle - 检查varchar2是否为空的正确方法是什么?

mysql - 查询花费很长时间在错误日志中发现锁定代码?

java - MySQL 不会插入 double 值