|
|
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток вам! Насколько я понял, рекурсию простым запросом не реализовать, и надо писать хранимую процедуру(функцию) для этого. В этом и прошу собственно у вас помощи. Древовидная структура, поля id и top отвечают за дерево, есть некое поле isgroup. так вот, надо посчитать количество записей, у которых isgroup равно 3, начиная от указанного id вглубь дерева маленький пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 07:19:19 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
хорошо бы глубина груп была бы небольшая фиксированая. Что-то типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 09:41:19 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
не, каталог бесконечный ваще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 10:58:29 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 11:50:25 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
спасибо, но при попытке сделать Код: plaintext может прав не хватает у юзера? или в функции дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 12:05:36 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
хотя у себя из под рута выполнил, прав навалом, то же самое сказал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 12:20:35 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
рекурсивно процедуру нельзя вызывать в mysql, делайте через цикл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 12:29:35 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
пожалуйста поясните, как, немного в мускуле понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 12:34:23 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
что как? цикл написать? http://dev.mysql.com/doc/refman/5.0/en/while-statement.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 12:35:41 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
я думал эту функцию как то по другому запустить. смысл писать тогда рекурсивные функции, если их нельзя запускать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:30:15 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
Nick Anikinрекурсивно процедуру нельзя вызывать в mysql, делайте через цикл Можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:35:09 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
xelaok Nick Anikinрекурсивно процедуру нельзя вызывать в mysql, делайте через цикл Можно помогите уже ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:39:34 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
djvov xelaok Nick Anikinрекурсивно процедуру нельзя вызывать в mysql, делайте через цикл Можно помогите уже ))) Через процедуру делай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:45:26 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:57:37 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
djvov Код: plaintext 1. 2. хз, у меня тока так получилось: Код: plaintext 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. 29. 30. 31. 32. 33. 34. 35. 36. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:26:51 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
Попрошу кинуть в меня камнем за этот вариант. Перед тем как ловить камень поясню, рекурсия имеет обыкновение падать при определенном уровне вложенности, а этому абсолютно пофиг. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:44:37 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
MAPA3OTПопрошу кинуть в меня камнем за этот вариант.зачем же камнем? я сразу написал - лучше через цикл переделать :) MAPA3OTПеред тем как ловить камень поясню, рекурсия имеет обыкновение падать при определенном уровне вложенности, а этому абсолютно пофиг.в mysql даже специальный параметр есть - max_sp_recursion_depth ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:14:26 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
xelaok Nick Anikinрекурсивно процедуру нельзя вызывать в mysql, делайте через цикл Можнода, я неправильно написал, имел ввиду функцию - как хотел автор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:15:13 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
вообщем скрипт Nick Anikin выдал что Recursive limit 0 (as set by max_sp_recursion_depth variable) was exceeded by routine go max_sp_recursion_depth надо увеличить? как его указать явно? Код: plaintext скрипт MAPA3OT'a на небольшой вложенности работает верно, а на большой - нет. В архиве дамп базы. Если считать фотки экскаваторов Код: plaintext А если считать самосвалы Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:22:11 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
Nick Anikinв mysql даже специальный параметр есть - max_sp_recursion_depth Все равно есть максимальное ограничение (255), после которого даже изменение этого параметра не спасет. Опять-таки, если нас устроит некое значение в пределах от 0 до 255, то мы ткнемся в некое подобие этого: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:28:56 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
даже твой скрипт работает быстрей чем та же рекурсия на пхп. еще бы верно посчитала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:34:00 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
MAPA3OTПопрошу кинуть в меня камнем за этот вариант. Перед тем как ловить камень поясню, рекурсия имеет обыкновение падать при определенном уровне вложенности, а этому абсолютно пофиг. Минус один - многократный фуллскан таблицы (по числу вложенных уровней), т.е. тормоза ... как вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:37:16 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
skol, повис мускуль, 99 процентов нагрузки на камень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:52:16 |
|
||
|
рекурсивная функция (процедура)
|
|||
|---|---|---|---|
|
#18+
djvov, индекс на top установи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 16:09:59 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=35302181&tid=1832577]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 304ms |

| 0 / 0 |
