我正在尝试通过长度为9的charfield选择行。它位于utf8_gen归类中。
我的条件是存储值的前n位必须与给定的位掩码匹配。
一个例子:
data:
id | val | bitmask (not actually stored in the db)
----+-----+-----------------------------------------
1 | AB | 0100000101 000010
2 | Ab | 0100000101 100010
bitmask for where-clause:
0100000101 0
expected selected rows:
1 | AB
最佳答案
我能拿出最好的。真丑。无法保证其运行速度或效果。
SELECT HEX(b'0100000101'<< BIT_LENGTH(myCol) - 10) & HEX(myCol) = HEX(b'0100000101'<< BIT_LENGTH(myCol) - 10);
myCol是上校。
关于mysql - 比较char字段和位掩码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26102031/