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

Gle*_*don 3 mysql varchar hex

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

这不起作用:

select szVersion,  hex(szVersion), concat("0x",szVersion)
Run Code Online (Sandbox Code Playgroud)

这可以根据需要运行(但不会从数据库中提取:

select 0x11bx & 0x1880
Run Code Online (Sandbox Code Playgroud)

Jus*_*der 5

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

您写道,您期望与以下语句的结果相同的结果:

SELECT 0x11B3 & 0x1880;
-> 4224
Run Code Online (Sandbox Code Playgroud)

所以我们知道所需的结果是4224号.

现在对表中的数据执行相同的操作:

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

同样的结果.工作:)