【发布时间】:2020-03-05 14:16:44
【问题描述】:
这里的上下文是 Android 应用程序中的 SQLCipher 数据库。 这里的上下文是 Android 应用程序中的 SQLCipher 数据库。 这里的上下文是 Android 应用程序中的 SQLCipher 数据库。考虑下面的 SQLite 表
CREATE TABLE IF NOT EXISTS test(a INTEGER NOT NULL,b INTEGER NOT NULL,c INTEGER NOT NULL,d INTEGER NOT NULL);
我在其中插入以下行
INSERT INTO test (a,b,c,d) VALUES(1,2,3,4);
INSERT INTO test (a,b,c,d) VALUES(1,2,3,5);
INSERT INTO test (a,b,c,d) VALUES(1,2,5,5);
INSERT INTO test (a,b,c,d) VALUES(1,5,5,5);
INSERT INTO test (a,b,c,d) VALUES(5,5,5,5);
简单的SELECT COUNT(*) FROM test WHERE a = 1 OR b = 2 or c = 3 or d = 4; 将返回4 作为结果,因为5 行中有4 行具有一个或多个匹配值。我需要做的是找到“最佳”匹配,即最满足WHERE .. OR 条件的匹配。在本例中,这将返回 所有四个 列都匹配的第一行。虽然我可以简单地将光标返回到沿 SELECT * FROM test WHERE a = 1 OR b = 2 or c = 3 or d = 4; 行的原始选择上,然后在 Java 中完成其余的工作,但我想知道是否没有办法直接在 SQLite 本身内执行此操作。
【问题讨论】: