{"id":91,"date":"2009-07-26T23:12:57","date_gmt":"2009-07-26T21:12:57","guid":{"rendered":"http:\/\/gate.rdue.net\/mygate\/blog\/?p=91"},"modified":"2009-07-26T23:12:57","modified_gmt":"2009-07-26T21:12:57","slug":"mein-sql","status":"publish","type":"post","link":"https:\/\/duerrenberger.dev\/journal\/2009\/07\/26\/mein-sql\/","title":{"rendered":"Mein SQL"},"content":{"rendered":"<p>PHP ist schon toll. MySQL nat\u00fcrlich auch! Doch ist es nicht m\u00fchsam, wenn man eine Tabelle mit ~1000 Eintr\u00e4gen hat und merkt, dass man in einem Feld etwas vergessen hat wegzulassen?<\/p>\n<p>Die \u201cnormale\u201d L\u00f6sung w\u00e4re nun, ein PHP Skript zu schreiben, welches die Tabelle komplett runterl\u00e4dt, denn Fehler mit PHP-Funktionen reparieren und denn wieder alles in die Tabelle einf\u00fcgen. Nach mehrmaligem wiederholen von solch einer Prozedur wird man bald einmal nach einem besseren Weg suchen \u2026 und in SQL selbst finden!<\/p>\n<p>Mein Problem:<\/p>\n<blockquote>\n<p><strong>Wie es ist:<\/strong><\/p>\n<p>Sean Connery::James Bond      <br \/>Skinner::imdb:nm0000125       <br \/>Ursula Andress::Honey Ryder       <br \/>Skinner::imdb:nm0000266       <br \/>Joseph Wiseman::Dr. No       <br \/>Skinner::imdb:nm0936476       <br \/>Jack Lord::Felix Leiter       <br \/>Skinner::imdb:nm0520437<\/p>\n<p><strong>Wie es sein sollte:<\/strong><\/p>\n<p>Sean Connery::James Bond::imdb:nm0000125      <br \/>Ursula Andress::Honey Ryder::imdb:nm0000266       <br \/>Joseph Wiseman::Dr. No::imdb:nm0936476       <br \/>Jack Lord::Felix Leiter::imdb:nm0520437<\/p>\n<\/blockquote>\n<p>Meine L\u00f6sung in SQL:<\/p>\n<blockquote>\n<p><strong>Anzeigen (zur Kontrolle):<\/strong><\/p>\n<p>SELECT REPLACE([spalten_name],\u2019[such_string]\u2019,\u2019[ersetz_string]\u2019) FROM [tabelle];      <br \/>z.B. SELECT REPLACE(actors,&#8217;nSkinner&#8216;,&#187;) FROM videodb_videodata;<\/p>\n<p><strong>Ersetzten (wenn Kontrolle OK):<\/strong><\/p>\n<p>UPDATE [tabelle] SET [spalten_name] = REPLACE([spalten_name],\u2019[such_string]\u2019,\u2019[ersetz_string]\u2019);      <br \/>z.B. UPDATE videodb_videodata SET actors = REPLACE(actors,&#8217;nSkinner&#8216;,&#187;);<\/p>\n<\/blockquote>\n<p>  <\/p>\n<p>Nun gut dieses Problem w\u00e4re gel\u00f6st! Doch Moment mal, da hab ich in jedem Feld noch einen Zeilenumbruch, welcher nicht dort sein sollte. Doch zum Gl\u00fcck besitzt SQL auch noch weitere praktische Funktionen!<\/p>\n<p>Entfernen eines Zeichen am Schluss<\/p>\n<blockquote>\n<p><strong>Wie es ist:<\/strong><\/p>\n<p>&#8230;      <br \/>Maxwell Shaw::Communications Foreman (uncredited)::imdb:nm0789871       <br \/>Bob Simmons::James Bond in Gunbarrel Sequence (uncredited)::imdb:nm0799689       <br \/><u>&#160;&#160; <\/u><\/p>\n<p><strong>Wie es sein soll:<\/strong><\/p>\n<p>&#8230;      <br \/>Maxwell Shaw::Communications Foreman (uncredited)::imdb:nm0789871       <br \/>Bob Simmons::James Bond in Gunbarrel Sequence (uncredited)::imdb:nm0799689<\/p>\n<p><u>&#160;&#160; <\/u>= nichts, soll nur Umbruch veranschaulichen<\/p>\n<\/blockquote>\n<p>L\u00f6sung<\/p>\n<blockquote>\n<p><strong>Anzeigen (zur Kontrolle):<\/strong><\/p>\n<p>SELECT SUBSTR([spalten_name],[start_pos_beginnt_1],{[l\u00e4nge]}) FROM [tabelle];      <br \/>z.B. SELECT SUBSTR(actors,1,LENGTH(actors)) FROM videodb_videodata;<\/p>\n<p><strong>Ersetzten (wenn Kontrolle OK):<\/strong><\/p>\n<p>UPDATE [tabelle] SET [spalten_name] = SUBSTR([spalten_name],[start_pos_beginnt_1],{[l\u00e4nge]});      <br \/>z.B. UPDATE videodb_videodata SET actors = SUBSTR(actors,1,LENGTH(actors));<\/p>\n<\/blockquote>\n<p>Nun f\u00fcr ein wenig mehr erfahrene Personen war dies nun wohl offensichtlich, aber vielleicht kann es ja au anderen von Nutzen sein.<\/p>\n<p>Eine kurze \u00dcbersicht \u00fcber die verschiedenen Befehle in SQL findet man <a href=\"http:\/\/www.1keydata.com\/sql\/sql-commands.html\" target=\"_blank\">hier (English)<\/a>.     <br \/>Die Probleme sind aus dem Arbeiten mit VideoDB [1] [2] [3] und eigenen Update Skripts entstanden.<\/p>\n<p>[1] <a href=\"http:\/\/www.videodb.net\/blog\/\" target=\"_blank\">http:\/\/www.videodb.net\/blog\/<\/a>     <br \/>[2] <a href=\"http:\/\/sourceforge.net\/projects\/videodb\/\" target=\"_blank\">http:\/\/sourceforge.net\/projects\/videodb\/<\/a>     <br \/>[3] <a title=\"http:\/\/www.splitbrain.org\/projects\/videodb\" href=\"http:\/\/www.splitbrain.org\/projects\/videodb\">http:\/\/www.splitbrain.org\/projects\/videodb<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP ist schon toll. MySQL nat\u00fcrlich auch! Doch ist es nicht m\u00fchsam, wenn man eine Tabelle mit ~1000 Eintr\u00e4gen hat und merkt, dass man in einem Feld etwas vergessen hat wegzulassen? Die \u201cnormale\u201d L\u00f6sung w\u00e4re nun, ein PHP Skript zu schreiben, welches die Tabelle komplett runterl\u00e4dt, denn Fehler mit PHP-Funktionen reparieren und denn wieder alles [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,13],"tags":[],"class_list":["post-91","post","type-post","status-publish","format-standard","hentry","category-pc","category-web"],"_links":{"self":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/posts\/91","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/comments?post=91"}],"version-history":[{"count":0,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/posts\/91\/revisions"}],"wp:attachment":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/media?parent=91"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/categories?post=91"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/tags?post=91"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}