我有一列的值为“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/