SQLite - iOS - 如何计算按位运算符的数量

时间:2013-12-01 20:34:28

标签: iphone database sqlite

我正在尝试动态构建一个SQLite SELECT语句,该语句将计算多个列中成功&个操作的数量。

我的数据库结构有8列(名为C1C8)每个列都包含01。我当然有很多行。

我正在尝试构造一个SELECT语句来计算成功的&操作的数量,例如:

SELECT * FROM (SELECT (C1 & 1) + SELECT (C2 & 0) + SELECT (C3 & 1) + ... + SELECT (C8 & 0))

但不幸的是,这种语法不起作用。示例中的1's0's是由我的应用程序(SQLite阶段之前)动态确定的值,因此我可以将它们构建为SELECT语句中的值这样

最终,我希望能够确定SELECT (Cx & 0)添加量最大的行。这是一种汉明距离函数。

任何人都可以看到我上面的SELECT声明有什么不对吗?我尝试了很多变种,但没有SQLite只是挂起。一个简单的按位SELECT语句(例如SELECT (C1 & 1))可以正常工作,输出01

更新

下面的答案实际上不起作用。如果我执行subselect语句

SELECT (C2 & 0)

无论价值如何,都会产生0。如果C2中的值为0,那么我会将其计为匹配项,因此计算为1。这可能吗???

1 个答案:

答案 0 :(得分:0)

SELECT (C1 & 1) + (C2 & 0) + (C3 & 1) + ... + (C8 & 0) FROM MyTable