|
Выборка по регулярному выражению без повторов.
|
|||
---|---|---|---|
#18+
Всем привет. Столкнулся с такой задачкой: Пусть есть следующая база данных: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Необходимо сделать запрос, который бы возвращал содержимое определённой директории. Например для рута можно написать что-то типа того: Код: plsql 1. 2. 3.
Для dir_1 должно получаться следующее: Код: plsql 1. 2. 3.
Без <magic> в первом случае выходит вся таблица. Вопрос как раз в том, чему равен <magic>. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 19:33 |
|
Выборка по регулярному выражению без повторов.
|
|||
---|---|---|---|
#18+
https://github.com/ralight/sqlite3-pcre И вся мощь регулярок у тебя в руках. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 21:02 |
|
Выборка по регулярному выражению без повторов.
|
|||
---|---|---|---|
#18+
И как бы ты регулярками отсёк 2, 3, 4? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 21:13 |
|
Выборка по регулярному выражению без повторов.
|
|||
---|---|---|---|
#18+
AnEagle, Представим, что последние 2 строки добавляются так: Код: sql 1. 2.
То что должно выводиться для вашего "рут"? Примерно понимаю что вы хотите, но записи в таблицах не имеют порядка, и вывести первую и "последнюю" запись в папке не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 21:23 |
|
Выборка по регулярному выражению без повторов.
|
|||
---|---|---|---|
#18+
AnEagleИ как бы ты регулярками отсёк 2, 3, 4?Ну их вообще-то отсекать и не нужно. Но список записей в корне можно будет получить через select distinct dir regexp '^\/[^\/]+' from t1 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 22:08 |
|
Выборка по регулярному выражению без повторов.
|
|||
---|---|---|---|
#18+
VSVLAD, порядок совершенно не важен. Важно, чтобы были выведены только /dir_1 и /dir_2. На яве это можно было бы написать так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Вместо i здесь можно получить из БД _ID, а потом уже получить необходимые курсоры. Но получать список элементов, а потом повторять query кажется не самым лучшим решением, особенно если БД большая. Рассматриваю также варианты со следующей структурой данных: create table t2 (_id integer primary key autoincrement, dir text not null, item text not null); Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Тогда получить необходимый мне вывод можно просто по ключу DIR. Код: plsql 1. 2. 3. 4. 5. 6. 7.
Но тут тоже не все, как хотелось бы. Во-первых, у нас будут создаваться "вспомогалельные" элементы, а во-вторых возрастёт количество обращений к БД, потому что нужно будет либо тупо реплейсить каждую директорию, либо проверять наличие недостающих директорий. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 22:48 |
|
|
start [/forum/topic.php?fid=54&msg=39067478&tid=2008650]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 132ms |
0 / 0 |