|
|
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Шаблон поиска по колонке id_points: 11305,11306,11488,11308,11309,11310,11311,11312,11313,11314,11315,11316,11317,11318,11319,11320,45574,11322,45572,11324,11325,11326,11327,11328 Необходимо выбрать данные, если в id_points есть любые пересечения с шаблоном. Например: 1. Строки полностью включающие в себя шаблон а) 6457,234,1234,11305,11306,11488,11308,11309,11310,11311,11312,11313,11314,11315,11316,11317,11318,11319,11320,45574,11322,45572,11324,11325,11326,11327,11328,7213,123 б) 11305,11306,11488,11308,11309,11310,11311,11312,11313,11314,11315,11316,11317,11318,11319,11320,45574,11322,45572,11324,11325,11326,11327,11328,7213,123 в) 6457,234,1234,11305,11306,11488,11308,11309,11310,11311,11312,11313,11314,11315,11316,11317,11318,11319,11320,45574,11322,45572,11324,11325,11326,11327,11328 2. Строки, включающие в себя часть шаблона: а) 11305,11306,11488,11308 б) 11311,11312,11313,11314,11315,11316,6457,234 в) 45671,3456,11305,11306,11488,11308,6457,234 Мой запрос часть выборок не делает, помогите, пожалуйста, разобраться, как верно прописать условия: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 13:18:25 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Убрал лишний подзапрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 13:27:25 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Это явно задача на поиск наибольшей общей подстроки. И она не для SQL... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 16:56:37 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Akina, не нужна наибольшая. Нужны все подстроки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 18:30:43 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Возможно выше непонятно написано. Попробую показать на примере, когда нужно найти подстроку: Надо найти все строки в колонке id_points содержащие любую часть этой строки или содержащиеся в этой строке: 11305,11306,11488,11308,11309,11310,11311,11312,11313,11314,11315,11316,11317,11318,11319,11320,45574,11322,45572,11324,11325,11326,11327,11328 Ручным перебором в таблице была найдена одна строка, содержится подстроку указанной выше строки. Подстрока выделена красным: 2355,2356,2357,2358,2359,2360,2361,2362,3140,2364,2365,11305,11306,11488,11308,11309,11310,11311,11312,11313,11314,11315,11316,11354,11353,8626,48265,1781 Как сформировать запрос sql, который найдет эту строку с подстрокой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 19:22:19 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
SolomoAkina, не нужна наибольшая. Нужны все подстрокиЖелательно не только прочитать ответ, но и постараться понять его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 19:27:54 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Akina, так я и пытался. Выше привел пример. Этот пример реализуем на sql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 19:37:39 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Akina, дошло о чем вы. Какими средствами это можно реализовать? Данные хранятся в mysql.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 20:29:22 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
В таблице более миллиона записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 20:30:15 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Ну... вариантов, собственно, немного. Первый - это нарисовать собственную функцию поиска этой общей подстроки. Лучше как UDF... Второй - вывалить это барахло на клиента, и пусть сам ищет что ему требуется. Если всё это происходит в рамках одного хоста - оба варианта допустимы. Ну а если нет - то только первый... В общем, см. http://algolist.manual.ru/search/lcs/index.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 09:12:15 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Akina, в каком из двух случаев поиск будет быстрее? С UDF не знаком. Это оно http://www.ibase.ru/devinfo/udf_ok.htm ? Верно понимаю, что тут своя функция будет обращаться к той же бд? И второй вариант, имеется ввиду вытащить из таблицы все данные в массив и искать по массиву? Объем данных большой (сейчас более миллиона, а будет еще больше). Я так понимаю на этапе только выгрузки из базы, будет тормозить. Как увеличить скорость выборки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 10:40:55 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
имхо, нормализовывать нужно это "кшмат" ТС !! а потом уже искать решение ... извиняюсь, что на МС СКЛ, но тут всё стандартное Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 11:34:56 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
qwerty112 , ты не учитываешь, что у него ещё и порядок элементов в подстроке важен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 12:06:50 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
Akina qwerty112 , ты не учитываешь, что у него ещё и порядок элементов в подстроке важен. учитываю, это контролируется группировкой по t.order_in_path-s.order_in_path ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 12:09:00 |
|
||
|
Выборка данных по шаблону
|
|||
|---|---|---|---|
|
#18+
qwerty112Akina qwerty112 , ты не учитываешь, что у него ещё и порядок элементов в подстроке важен. учитываю, это контролируется группировкой по t.order_in_path-s.order_in_path вот, переставил 2-а поинта местами Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 12:13:19 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38452697&tid=1835786]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 384ms |

| 0 / 0 |
