MYSQL搜索表,位字段

时间:2013-07-16 17:16:02

标签: mysql bit

我有一个包含行的表,其中一个字段是一个7位的位值。

假设我有一个程序,我希望选择此位字段等于' 0101010'的所有行,这可以通过select * where ....等等来轻松完成。

但是:如果我想允许数字的一个/多个数字为1或0,我该怎么办,即我想得到所有行,其中位域在表单上有一个条目1001 * 1 *其中*可以是1或0.因此,在这种情况下,我想要位字段为1001010,1001011,1001110或1001111的所有条目。

从TABLE中选择*,其中(1001010,1001011,1001110,1001111)中的bit_field可能在此示例中起作用,但如果我只想使用字符串' 1001 * 1 *'作为程序的输入,那么呢? 。 非常感谢任何帮助。

谢谢, 尼古拉斯

修改:我已尝试过这样做:从表中选择*,其中字段如bit' \\\ 0&#39 ;;获取表格 * * 0的所有条目,但这不起作用......

Edit2:原来它是一个位字段,而不是二进制......问题仍然存在。

1 个答案:

答案 0 :(得分:0)

本身并不直接回答你的问题,而是另一种方法。您提到由于遗留代码,您不希望转换为单个列。如果你想要单独的列,并且唯一阻止你的是遗留代码,请考虑以下内容。

您可以为选项添加列并使用插入/更新触发器填充它们,或者您可以创建一个将位拆分为单独列的视图。对于新开发,您可以编写新列。随着时间的推移,当您修改遗留代码时,您可以将其更改为新方法。当所有“读取”遗留代码都已更改时,最后一步是更改“写入”代码以使用新列而不是位列并删除触发器。

我有一个SQL小提琴演示这个here。请注意,为了简洁,我只包含了一个插入触发器。