簡體   English   中英

Mysql:如果特定位置的位數是1,如何選擇a?

[英]Mysql: How do I select a if a bit on a specific place is 1?

我有一個mysql列,其中包含一個整數,其中包含有關用戶選擇的選項的信息。

現在,例如,數字42 = 2 + 8 + 32 = 2 ^ 1 + 2 ^ 3 + 2 ^ 5 ,因此具有options = 42的用戶選擇了選項1,3和5。

如何選擇(至少)選項5被選中的所有用戶? 什么是正確的工作SQL查詢?

SELECT * FROM `users` WHERE ???(`options`) = ???(5);

提前致謝!

如果options是整數類型,則可以選擇在其選項中設置至少第 5位的行,如下所示:

SELECT * FROM `users` WHERE `options` >= POW(2, 5)

選擇在其選項中設置了第5位的列,請執行

SELECT * FROM `users` WHERE (`options` & POW(2, 5))

嘗試按位操作:

http://dev.mysql.com/doc/refman/5.0/en/bit-functions.html

在您的代碼(MySql)中,條件可能是

SELECT * 
  FROM `users` 
 WHERE (`options` & (1 << 5)) <> 0 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM