将char字段与位掩码进行比较

时间:2014-09-29 14:16:04

标签: mysql sql

我试图通过长度为9的字段来选择行。它在整理中是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 个答案:

答案 0 :(得分:1)

我能想到的最好的。这很难看。不能保证它的运行速度有多快。

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

myCol是col。