Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Добрый день всемогущий All, Имею я таблицу типа : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Эта таблица есть древовидный список вида : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Скажем так база уже не хилая и будет увеличиваться и сильно и по этому поиск реализованный в ней методом функции уже стал сильно грузить базу ,можно ли осуществить поиск по такой базе одним запросом , То есть я например указываю стартовую ветку ID=2 и Like %C% и на выходе получаю ID 5,6 6 А если ID=1 и Like %а% то имею ID=1,2,5,6 Причем количество таких вложений на текущий момент может достигать 73 .... писалась все это много лет тому назад, как временное решение (научная хрень, анализ) под обещание что вот вот скоро будет СУПЕР ПО для этого и все будет круто, но 7 лет спустя все изменилось и теперь "решайте сами , пишите сами , денег нет но вы держитесь"... я сильно не знаток СУБД Сейчас у меня в мускуле написана функция которая вызываться рекурсивно но при большой базе и большой итерации это реально занимает много времени ... //Дайте мне компилятор ДНК и я починю мир (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2017, 09:24 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Я так понимаю, что FAQ: Древовидные структуры средствами MySQL или роман Стендаля "Красное и Черное" Вами уже изучен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2017, 09:34 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereus, Как часто и как сильно изменяется эта таблица со временем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2017, 09:49 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
И какова максимальная вложенность данных (количество уровней дерева) - текущая и прогнозируемая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2017, 09:52 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Akina , нет изучу похоже мой случай ... что поиск не давал результатов.. miksoft , некоторые во сновном верхние разделы вечные .... ниже постоянно изменяются все зависитотрезультатов симуляции процесса , если ветка не привела к нужному она вообще вся удаляется Akina , на текущий момент насчитал 73 , но в теории бесконечен ... у меня везде ТИП Int_32 так что им и ограничен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2017, 09:57 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Я в своей практике работы с деревьями в БД остановился на варианте с двумя таблицами: В первой соответственно сами элементы, т.е. id, data А во второй собственно иерархия: Код: sql 1. 2. 3. 4. 5. 6. Где parentID и childID ссылки на таблицу с элементами, а relLevel - уровень на котором данный элемент является потомком данному родителю. И внесение узлов, удаление и перемещение сделаны процедурами. При вставке в таблицу с элементами, триггер вставляет в таблицу связности запись для созданного id: {id, id, 0} Но это я тоже подчерпнул из ссылки которую тебе уже привели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 00:51 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Итак Akina спасибо за линк, много чего интересного правда с учетом того что SQL не моя специализация пришлось много и долго читать , в итоге я добрался до как бы готового решения : вот тут но оно не фига не работает : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. kormot, это не лучшее решение... на мой взгляд, остаётся вся та же самая сложность но еще и в две таблицы, мне нужно движение в любую сторону от родителя к потомку иобратно , например вот такой запрос свособен от ID дойти до верхнего уровня : Код: sql 1. 2. причем его результат можно использовать в другом запросе например через `ID` IN ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 01:48 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Закончил читать , ответа работающего так и не нашёл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 04:01 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereus Код: plaintext Читать надо сначала документацию. Там рассказано, как делать ПРАВИЛЬНО - в том числе и про DELIMITER. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 07:46 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Akina , я взял якобы готовый и рабочий пример из статьи , и он не заработал ... скажите если я вам расскажу что вы не верно селектируете вирусы в банках петри , и ткну вас в учебник по гинетике вам проще будет ? Так вот вы делаете тоже самое ... если у вас есть знания и возможность , дайте верное решение , если еще и есть время в достаточном объёме то подробно поясните как это работает . и тогда благодарность вам будет... ибо перелопатив тонны споров на высшем уровне я НЕ ХРЕНА НЕ ПОНЯЛ, так как я уже упоминал выше что SQL для меня сильно не основное... Вспоминаю вступительную фразу к одной книжке "прочтение данной книги целиком не сможет сделать вас программистом..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 08:06 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereusибо перелопатив тонны споров на высшем уровне я НЕ ХРЕНА НЕ ПОНЯЛ А я не зря сказал - сначала надо читать ДОКУМЕНТАЦИЮ! CREATE PROCEDURE and CREATE FUNCTION Syntax Вот не поленись посмотреть - особенно примеры. ЛЮБОЙ пример создания процедуры/функции, состоящей более чем из одного предложения, начинается заданием особого DELIMITER и завершается его восстановлением к стандартному. Потому что сервер в принципе не может определить, что завершается текущей точкой с запятой - отдельное выражение внутри процедуры или само CREATE PROCEDURE. Fastereusя взял якобы готовый и рабочий пример из статьиОн готовый и рабочий. Только рассчитан не на тех, кто вообще ничего не знает - статья ни разу не учебник, где понятия и элементарные правила разжёвываются с нуля. Любой, кто хоть что-то знает и прочитал про создание процедур, знает, что примеры в статье НЕОБХОДИМО обрамлять соотв. обвязкой. FastereusВспоминаю вступительную фразу к одной книжке "прочтение данной книги целиком не сможет сделать вас программистом..."Очень правильное утверждение. Особенно для случая, когда напрочь отсутствует желание. Fastereusесли я вам расскажу что вы не верно селектируете вирусы в банках петри , и ткну вас в учебник по гинетике вам проще будет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 08:26 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Akina , все таки вы один из тех кто не дает рыбу но и не может научить пользоваться удочкой ... не самый плохой вариант конечно но не лучший ... я уже писал , как нужно помогать , о том что у меня нет спец знаний я вам уже сказал ... я как бы микроэлектронщик и до вирусов или нетики мне в принципе тоже до фени это была цитата с одного из форумов... там так же человеку на простой вопрос про релаизацию ALU на ПЛИСе на 40 листов кидали умных фраз , после чего пришел порутчик ржевский и прекратил издевательство над человеком выдав пример и подробное описание логики... Ладно подожду своего порутчика... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 09:28 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereusподожду своего порутчикаПока будете ждать - постарайтесь всё-таки сформулировать задачу (имеется-требуется, можно даже с примером данные-результат). Пока что это не сделано лишь приблизительно - есть какие-то обрывки, причём даже не примеров, а так, ощущения в словах... Fastereusу меня нет спец знаний я вам уже сказал ... я как бы микроэлектронщик Описываемая задача как-то далековата от микроэлектроники. Делается в порядке интереса? тогда я не понимаю столь явно выраженного нежелания осваивать знания, явно необходимые для своего хобби... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 10:12 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Akina, как поставить задачу точнее чем в старт топике мне не ясно, требуется получить ID от родителя до всех потомков его ... На моём хобби таких здачь нет, если в кратце идет исследование бактерий которые будут перерабатывать сточные воды , есть тонна пробирок в которых сидят эти бактерии при разных условиях . температуры среда и плюс еще каждой подливают какуюнибь химию , да еще и в разных концентрациях .подсовывают другие микро организмы ... короче тупое тестирование ... этот аппарат после анализа не спрашивай чего , будем считать что выхлопных газов отбактерий , дает какие то результаты , но самый глобальный зажим что имя файла имеет уникальный номер , если в кратце тотам просто порядковый номер анализа и число бит под 64 наверно а тои больше ... но анализы на нём делают не только по этой программе аа еще по целой куче ... дано уже меня попросили что то придумать я придумал базу для хранения дезультатов , с кратким описанием , потом попросили сделать её древо видной ибо оодни анализы вытикают из других .. сделал ... вобщем не видел я их кучу лет ... а теперь у них возникла задача (они в поле About писали краткие выводы по основным критериям анализа ну не знаю что тотипа САРС >30% че это мне не понятно но ни короче ццелую систему разработали) так вот им нужен поиск но не повсем элементам а начиная с какой то ветки ... и что я сейчас делаю , я делаю первый заапрос всех потомков в нем LIKE %....% потом вызываю эту же функцию для каждого из этих элементов , короче рекурсивный поиск ... про то что там оборудование и железо шлак я думаю итак ясно стоял бы там сервер как на моёмосновном месте работы с 8 процамипо 8 ядер и 512 гб оперативы и лезвием c скоростью работы сравнимым с лучшими SDD дисками , проблем бы не было а так переиодически PHP вываливается так как время выполнения скрипта привышает максимальное ... Делаю я это бесплатно , ибо наука у нас бедная, они как бы и так работают и это их устраивает но хочется лучшего ... p.s.: Моё хобби это разработка промышленных PLC с последующей продаже разработок производителям , сейчас готовлю свой старт ап хочу попробовать сам производить и продавать ... Работаю вообще в большой энергетике мелким начальником ... И если еще честнее быть не когда не изуячал глубако SQL, потому что в моей сфере ему нет места ... а если бы изучал то не просил бы помощи... и если бы мог понять что надо обертку делать, не говорил бы что не знаю ... ну и так далее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 04:04 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereusкак поставить задачу точнее чем в старт топике мне не ясно Ну хотя бы точно так же, как и пример исходных данных, показать условия отбора (текстом) и желаемый результат (таблицей). На ИМЕННО ЭТИХ данных и условиях. И с объяснением, почему именно так. И использовать при этом тег Table (поля разделять запятыми). И не забывать пользоваться кнопкой Просмотр, чтобы убедиться, что выглядит так, как задумано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 07:59 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Если я верно понимаю, то требуется следующее: в дереве по заданному узлу найти его и всех его потомков, которые соответствуют указанному шаблону. Если так - решение в указанном FAQ есть. И не в одном экземпляре. Обычный поиск по слову "потомков" в теме их даёт. Например, FAQ: Древовидные структуры средствами MySQL или роман Стендаля "Красное и Черное", msg=13962137 Всего-то и надо, что к полученному списку потомков применить требуемый шаблон... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 08:07 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Товарищ Fastereus , я как далеко-далеко не самый крутой спец на этом форуме вполне понимаю желание вопрошающего зачастую получить ответ как можно ближе к реализации, без необходимости изучать всё с азов. Я всё же по своему варианту попробую выступить в защиту. Не вижу особых трудностей с нахождением хоть потомков, хоть родителей. Т.е. твои данные в моём представлении предполагают выглядеть так: Таблица А Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Таблица B Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В твоей однотабличной схеме я так понимаю кроме рекурсии никак не решить задачу с поиском потомков и родителей, а это дело затратное. В моей схеме избыточность данных, но плюсом - скорость поиска. А никаких дополнительных трудностей с двухтабличной схемой нет. Тригером при добавлении в А создаётся запись "сам на себя" в В. И процедурами создаётся/изменяется подчинённость узлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 09:38 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Akina, Это про текстовые индексы ? процитируй ПЖСТ что ты считаешь ответом , я выше процитировал что я посчитал ответом но оно не заработало , потому что его надо "обернуть" , в ответ на как , я был отправлен к мануалу. причем к тому разделу манула который совершенно бесполезно читать с середины... в общем рекурсия вышла ... kormot, в выше упомянутой Akina статье описаны все минусы вашего метода, но и даже с учетом того что там описано мне придется перелопатить тонну кода, причем большую часть которого уже сильно давно писал и не только я... нежели добавить всего одну функцию поиска ... я молчу про конвертацию базы и заного прикручивание к ней данных анализатора... меня постигает печалька только примыслях об этом , а еще и возможные косяки и то что этовсе придется делать в онлайне наживой базе ... в общем тут нет однозначно , но за ответ спасибо ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 09:49 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereusнадо "обернуть" , в ответ на как , я был отправлен ... прочитать про DELIMITER. Как успехи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 10:57 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
FastereusЭто про текстовые индексы ? процитируй ПЖСТ что ты считаешь ответомКакие нах текстовые индексы? ты чем смотришь? Я специально дал ссылку на конкретный постинг. У него даже заголовок тебе специально зелёным выделен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 11:45 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Akina, Так , он в строку ... выходит . Возвращается одна строка одно поле в место списка, как это сунуть в таблицу ? для дальнейшего использования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 04:24 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
В общем решение так и не было найдено ... ладно что же пусть по прежнему PHP трудится над этой проблемой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 06:17 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
наткнулся на проблему которую не могу совершенно понять , я в общем эксперементировал в консоли и в phpmyadmin и запрос : Код: sql 1. 2. прекрасно работает , но при попытке сунуть его в mysqli_query() сносит моск : Код: sql 1. 2. 3. 4. Убейте не могу понять в чем засада ???? этот же запрос спокойно выполняется с консоли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 04:01 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereusв чем засада ????Наверное, в том, что mysqli_query() не понимает мультизапросов. перемести инициализацию переменной в секцию FROM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 07:52 |
|
||
|
Древесный запрос ( древовидный)
|
|||
|---|---|---|---|
|
#18+
Fastereus, не вникал в ветку, а чем NESTED SETS не идёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 08:53 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=58&tid=1830035]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
32ms |
get forum data: |
2ms |
get page messages: |
156ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 274ms |

| 0 / 0 |
