2015-12-03 3 views
0

В моей таблице в sqlite есть имя столбца, которое вводится как префикс + integervalue. например, p1, p2. и если есть 5 строк p1, p2, p5, p7, p10. Я знаю, что префикс ввода как «p», и мое следующее значение вставки должно быть p3 после этого p4, после этого p6, p8, .. вот так. пожалуйста, помогите мне в запросе найти эти пробелы или любую поддержку API, я использую content_provider в программировании для Android. Пожалуйста, помогите мне, моему клиенту это нужно.Как вставить/найти пробелы в таблице sqlite

+0

это проще для людей, чтобы помочь вам, если у них есть некоторые важные ** кусок кода ** в работайте - пожалуйста, покажите нам, что вы пробовали до сих пор – 0X0nosugar

ответ

0

Вы должны извлечь номер из названия, и использовать его для поиска следующего номера:

SELECT 'p' || (substr(Name, length('p') + 1) + 1) 
FROM MyTable 
WHERE NOT EXISTS (SELECT 1 
        FROM MyTable AS T2 
        WHERE T2.Name = 'p' || (substr(MyTable.Name, length('p') + 1) + 1)) 
ORDER BY substr(Name, length('p') + 1) + 1 
LIMIT 1; 
0

Почему вы не запрашиваете весь свой стол? Таким образом, вы возвращаете значения p1, p2, p5, p7 и p10. Поместите их как String в arraylist и проведите по ним. Посмотрите, какие значения у вас нет.

Другая возможность создания списка программно с p0 до pXXXX. Идите по ним и посмотрите затем в свой db, имена которых у вас нет. Создайте новые записи, добавьте их в список и нажмите их в db.

Или вы просто получите максимальное и минимальное значение и заполните все между ними и надавите на db (создайте или замените).

Надеюсь, что поможет найти алгоритм.

Смежные вопросы