{"id":304,"date":"2008-03-23T01:42:20","date_gmt":"2008-03-23T00:42:20","guid":{"rendered":"https:\/\/bob-team.de\/wordpress\/2008\/03\/23\/eigene-funktionen-im-mysql\/"},"modified":"2008-03-23T01:44:18","modified_gmt":"2008-03-23T00:44:18","slug":"eigene-funktionen-im-mysql","status":"publish","type":"post","link":"https:\/\/bob-team.de\/wordpress\/2008\/03\/23\/eigene-funktionen-im-mysql\/","title":{"rendered":"Eigene Funktionen im MySQL"},"content":{"rendered":"<p><img src='https:\/\/bob-team.de\/wordpress\/wp-content\/uploads\/2008\/03\/mysql_browser.png' alt='Screenshot MySQL' \/><\/p>\n<p>Die Aufgabe: eine oft ben\u00f6tigte Funktion innerhalb des MySQL ablegen. Eine Struktur (mit unbekannter Tiefe) wurde in einer Tabelle (jeweils ID oben und unten) abgelegt. Die Funktion soll eine beliebige ID in den dazu passenden Pfad umwandeln k\u00f6nnen.<\/p>\n<p>Die L\u00f6sung: eine eigene Funktion im MySQL. Sie sucht &#8211; ausgehend von der aktuellen ID &#8211; die Parent-ID, l\u00f6st diese in ihren Bezeichner auf und beendet sich, wenn die aktuelle ID gleich 0 ist.<\/p>\n<p><!--more--><\/p>\n<p><img src='https:\/\/bob-team.de\/wordpress\/wp-content\/uploads\/2008\/03\/mysql_struktur.png' alt='Screenshot MySQL' \/><\/p>\n<p>[code lang=&#8220;sql&#8220;]DELIMITER $$<\/p>\n<p>DROP FUNCTION IF EXISTS `berichte`.`MW_ID_TO_PATH` $$<\/p>\n<p>CREATE FUNCTION `berichte`.`MW_ID_TO_PATH`<br \/>\n(id INT, binder VARCHAR(10))<br \/>\nRETURNS TEXT<br \/>\nBEGIN<br \/>\n   DECLARE node VARCHAR(200) DEFAULT &#8220;;<br \/>\n   DECLARE path TEXT DEFAULT &#8220;;<\/p>\n<p>   IF id = 0 THEN<br \/>\n      SET node = &#8218;ROOT&#8216;;<br \/>\n   ELSE<br \/>\n      SET node = (<br \/>\n         SELECT bezeichner FROM schluessel<br \/>\n         WHERE schluesselId = id);<br \/>\n   END IF;<\/p>\n<p>   SET path = CONCAT(path, node);<\/p>\n<p>   WHILE id > 0 DO<br \/>\n      SET id = (<br \/>\n         SELECT schluesselObenId FROM struktur s<br \/>\n         WHERE schluesselUntenId = id);<br \/>\n      IF id = 0 THEN<br \/>\n         SET node = &#8218;ROOT&#8216;;<br \/>\n      ELSE<br \/>\n         SET node = (<br \/>\n            SELECT bezeichner FROM schluessel<br \/>\n            WHERE schluesselId = id);<br \/>\n      END IF;<br \/>\n      SET path = CONCAT(node, binder, path);<br \/>\n   END WHILE;<\/p>\n<p>   RETURN path;<br \/>\nEND $$<\/p>\n<p>DELIMITER ;[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Aufgabe: eine oft ben\u00f6tigte Funktion innerhalb des MySQL ablegen. Eine Struktur (mit unbekannter Tiefe) wurde in einer Tabelle (jeweils ID oben und unten) abgelegt. Die Funktion soll eine beliebige ID in den dazu passenden Pfad umwandeln k\u00f6nnen. Die L\u00f6sung: eine eigene Funktion im MySQL. Sie sucht &#8211; ausgehend von der aktuellen ID &#8211; die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[30],"class_list":["post-304","post","type-post","status-publish","format-standard","hentry","category-software","tag-mysql","entry"],"_links":{"self":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/comments?post=304"}],"version-history":[{"count":0,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/304\/revisions"}],"wp:attachment":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/media?parent=304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/categories?post=304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/tags?post=304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}