본문 바로가기
MySql

MySQL 정수의 특정 비트가 설정된 mySQL SELECT 행

by 베이스 공부 2020. 9. 21.
반응형

정수의 특정 비트가 설정된 게시 테이블에서 선택 쿼리를 수행해야합니다. The integer represents a set of categories in a bitmask: 예 :

1 => health
2 => marketing
3 => personal
4 => music
5 => video
6 => design
7 => fashion
8 => ......

데이터 예 :

id | categories | title
1  | 11         | bla bla
2  | 48         | blabla, too

특정 카테고리로 표시된 게시물을 선택하는 mysql 쿼리가 필요합니다. Let's say "all video postings" 즉, 카테고리 열의 5 번째 비트가 설정된 게시물의 결과 집합이 필요합니다 (예 : 16,17,48 ....).

SELECT * FROM postings WHERE ....????

어떤 아이디어?

 

해결 방법

 


WHERE categories & 16 = 16

각 비트에 대해 다음 값을 사용하여 16 값을 대체하십시오.

1 = 1
2 = 2
3 = 4
4 = 8
5 = 16
6 = 32
7 = 64
8 = 128

이것은 대부분의 프로그래머가 생각하는 방식과 반대되는 최하위 비트에서 가장 높은 비트로 이동합니다. 그들은 또한 0에서 시작합니다.

 

참조 페이지 https://stackoverflow.com/questions/9118111

 

 

반응형

댓글