我有一个值为'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)
使用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)
同样的结果.工作:)