SQL für den Gottimperator

Ab und an steht man in SQL vor Problemen. Ich schätze mich weder als Laien, noch als Könner ein. Eher als Hasser und erklärten Feind von Datenbankkrams. Irgendwann wirds auch Objektorientierte Datenbanken für die Breite Masse und OpenSource geben, oder ich mache nur noch Sachen mit Ruby on Rails. Leider liegt das noch in einer weiten oder weniger weit entfernten Zukunft und ich muß den Müll immer noch  selbst machen. Eben stand ich vor dem Problem, dass ich entweder ein Update, oder ein Insert machen muß. Statt die Chose mit 5 Zeilen PHP zu lösen (was noch gruseliger wär) hab ich mir folgenden Befehl ergooglet (das prepared Statement kann mich an dieser Stelle mal)

$stmt=“

INSERT INTO cron_result (r_id, b_id,time, result, resultcode) VALUES ($r_id,$b_id,NOW(),“$retval“,$retcode)

ON DUPLICATE KEY

UPDATE time=NOW(), result=“$retval“, resultcode=-$retcode

„;

Toller Trick. Die Now Funktion aus einem älteren Beitrag wurde auch Weise genutzt 🙂

Select distinct from your MYSQL Table

Ich habe vor dem Problem gestanden in einer doch recht großen Tabelle ohne Unique Constraints doppelte Einträge rauszukratzen. Spontan hab ich sowas gesagt wie

SELECT distinct (’spalte1′), spalte2 from TABLE where spalte3 =’$machdichkaputt‘;

Die einzelnen Zeilen in ne neue Tabelle mit irgendeiner Skriptsprache kicken und gut ist.Allerdings klappt diesnicht mit meiner Mysql Datenbank und ich brauche unbedingt die ID um glücklich zu werden 🙁

Hier hilft ein blick in die MySQL 5.1 Referenz. Group by treibt in dieser schönen DB das gleiche wie ein distinct.

Mit

SELECT name, id from TABLE where spalteN=’gehtisgeil‘ group by name

werd ich froh 🙂 Jetzt noch das Proukt aus ~7*10**5 Spalten in der einen und ca. 5*10**3 spalten auswerten.