i have to do a select query in a posting table where a specific bit of an integer is set.
The integer represents a set of categories in a bitmask:
E.g.
1 => health
2 => marketing
3 => personal
4 => music
5 => video
6 => design
7 => fashion
8 => ......
Data example:
id | categories | title
1 | 11 | bla bla
2 | 48 | blabla, too
I need a mysql query that selects postings, that are marked with a specific category.
Let’s say “all video postings”
This means i need a result set of postings where the 5th bit of the catgories column is set (e.g. 16,17,48 ….)
SELECT * FROM postings WHERE ....????
Any ideas ?
You can use bitwise operators like this. For video (bit 5):
Substitute the value
16using the following values for each bit:This goes from least significant bit to highest, which is opposite of the way most programmers think. They also start at zero.