Контекст здесь - это база данных SQLCipher в приложении Android. Контекст здесь - это база данных SQLCipher в приложении Android. Контекст здесь - это база данных SQLCipher в приложении Android. Рассмотрим следующую таблицу 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
в результате, так как 4 из 5 строк имеют одно или несколько совпадающих значений. Что мне нужно сделать, так это найти «лучшее» соответствие, то есть то, которое удовлетворяет большинству WHERE .. OR
условий. В данном случае это вернет первую строку, где совпадают все четыре столбца. Хотя я мог просто вернуть курсор на необработанный выбор по строкам SELECT * FROM test WHERE a = 1 OR b = 2 or c = 3 or d = 4;
, а затем сделать все остальное в Java, мне интересно, нет ли способа сделать это непосредственно в самом SQLite.