2011-12-05 2 views
2

mysql의 비트 필드에서 1 비트 (또는 bool)를 가져 오는 방법이 있습니까?비트 필드에서 인덱스로 1 비트 가져 오기 mysql

내가 사용한 유일한 해결책은 다음을 사용하는 것입니다. 3의 비트 값을 원합니다.

SELECT bit_count(bin(column) & b'100') AS bitValue FROM table; 

이 쿼리의 결과는 1 또는 0입니다. 하지만 너무 좋아 보이지 않습니다. 비트 필드의 특정 위치에서 비트 값을 가져 오는 더 좋은 방법이 있습니까? 비트 값을 읽는 것은 내 웹 응용 프로그램에서 많이 수행 될 것입니다. 위에서 사용 된 값을 얻는 방법이 성능에 문제가 될 것이라고 생각합니까 ?? 읽기 위해

SELECT column(3) FROM table; 

감사합니다 : 난 내가 좋아하는 뭔가를 찾고 있어요

에 ..를 bit_count와 BIN() and "와"연산자 모두 의미!

Mattias.

답변

2

읽기 성능이 걱정되고 관심있는 비트가 고정되어 있으면 비트 추출한 다음 부울 열에 삽입하십시오. 추출하려는 비트가 동적 인 경우 솔루션이 최적이라고 생각합니다.