Czy istnieje sposób, aby uzyskać jeden bit (lub bool) z pola bitowego w mysql?
Jedynym rozwiązaniem, jakie wymyśliłem, jest użycie następujących opcji: Chcę wartość bitu na pozycji trzeciej.
SELECT bit_count(bin(column) & b"100") AS bitValue FROM table;
Dane wyjściowe z tego zapytania to jeden lub jedenzero. Ale to nie wygląda tak ładnie. Czy istnieje lepszy sposób na uzyskanie wartości bitu w określonej pozycji w polu bitowym? Czytanie wartości bitów byłoby bardzo trudne w mojej aplikacji internetowej, czy uważasz, że sposób uzyskania wartości, której użyłem powyżej, byłby problemem dla wydajności? mam na myśli zarówno bit_count, jak i operator BIN () oraz „i”.
Szukam czegoś takiego jak:
SELECT column(3) FROM table;
Dziękuje za przeczytanie!
Mattias.
Odpowiedzi:
2 dla odpowiedzi № 1Jeśli martwisz się o wydajność odczytu inaprawiono bit, który Cię interesuje, spróbuj wyodrębnić bit i wstaw go do kolumny boolowskiej. Jeśli fragment, który próbujesz wyodrębnić, jest dynamiczny, myślę, że twoje rozwiązania są optymalne.