2014-09-29 65 views
0

我试图按长度为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 

回答

1

尽我所能想出。这很丑陋。不能保证它有多快或好用。

SELECT HEX(b'0100000101'<< BIT_LENGTH(myCol) - 10) & HEX(myCol) = HEX(b'0100000101'<< BIT_LENGTH(myCol) - 10); 

myCol是col。

相关问题