如何最好地解释sql中的flags列

x6492ojm  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(438)

如标题所示,如何最好地将flags列的int值解释为简单文本?
我想让sql自动解释任何给定的值
介于1和1023之间(2⁰ <= x<2¹⁰ )
其中thix数只能用
(2⁰ 或2¹ 或2² 或2³ 或2⁴ 或2⁵ 或2⁶ 或2⁷ 或2⁸ 或2⁹) 只使用两个给定的幂中的任何一个。

djmepvbi

djmepvbi1#

简单的答案是使用“&”位运算符。比如:

(myValue & 1)
(myValue & 2)
(myValue & 4)
(myValue & 8)
(myValue & 16) -- etc

结果值将是0或正在测试的2的幂。为了让事情变得简单,你可以把它转换成一个位,如果它不是零,它将变成1。
稍微长一点的答案是:我建议把它变成一个视图。这样,任何时候需要引用特定列时,都可以使用视图,而不必在每个使用它们的过程/查询中放入位引用和位强制转换。

相关问题