Hello,
I'm trying to use hexadecimal numbers in a where clause and it
seems things aren't quite working as expected. I get unknown token
errors or inequalities don't return the correct answer.
I have one value set:
sqlite> SELECT HEX(minMAC) FROM manifests;
00C100000000
All works as expected with some simple tests:
sqlite> SELECT HEX(minMAC) FROM manifests WHERE minMAC <=
X'00D100000000';
00C100000000
sqlite> SELECT HEX(minMAC) FROM manifests WHERE minMAC >=
X'00D100000000';
Let's try a small number:
sqlite> SELECT HEX(minMAC) FROM manifests WHERE minMAC <= X'04';
00C100000000
[Wrong -- x'04' < x'00C100000000']
Let's try another small number:
sqlite> SELECT HEX(minMAC) FROM manifests WHERE minMAC <= X'04421';
SQL error: unrecognized token: "X'04421'"
[What's malformed about this compared to above?]
So, can anyone explain to me how I can do inequalities with hexadecimal
values; and why some values cause an "unrecognized token" error?
Thank you,
Clay
P.S.
Double escaping as is sometimes needed for BLOB objects as per:
http://www.mail-archive.com/[email protected]/msg27502.html
This seems wrong from this output though:
sqlite> SELECT HEX(minMAC) FROM manifests WHERE minMAC <=
"X'00D100000000'";
[Wrong as I would expect x'00C100000000' < "x'00D100000000'" (Is this a
string interpretation?)]
sqlite> SELECT HEX(minMAC) FROM manifests WHERE minMAC >=
"X'00D100000000'";
00C100000000
[But at least it seems that x'00C100000000' > "x'00D100000000'"
consistently]
P.P.S.
I've tested this with minMAC being an integer or a blob type.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users