MySQL Zufallswert in Spalte eintragen / updaten

März 8, 2018 - Lesezeit: ~1 Minute

Kurzer Schnipsel. Kann durchaus nützlich sein.

Die Basis um einen Zufallswert, der in einem bestimmten Bereich liegt, ist folgende:

SELECT FLOOR(30 + RAND() * 3)

In diesem Fall wird ein Wert zwischen 30 und 32 generiert. Die Addition am Ende muss also immer > 1 des maximal Bereichs sein.

Als komplettes Statement könnte es z.B. so aussehen

UPDATE table_a SET zufallswert = (SELECT FLOOR(30 + RAND() * 3))


MySQL Daten aus Tabelle löschen zu denen keine ID in anderer Tabelle exisiert

Januar 9, 2017 - Lesezeit: ~1 Minute

Wer halbwegs darauf achtet das seine MySQL Datenbanken nicht völlig zugemüllt sind, der wird früher oder später auch mal Datensätze löschen müssen. Dabei kommt es zumindest bei mir oft vor das ich vor allem Daten aus Tabellen löschen will, zu denen der Nutzer gar nicht mehr existiert. Optimalerweise entfernt man natürlich alle Datensätzes eines Nutzers sobald man diesen aus dem System entfernt, aber auch da kann es Situationen geben wo dies nicht geht oder wo man es aus diversen Gründen vergessen hat. Mit dem folgenden Befehl enterne ich Datensätze zu denen kein Nutzer mehr existiert. Wichtiger Hinweis: Bevor man einen DELETE Befehl ausführt sollte man ein Backup machen oder mit Transactions arbeiten. Ich übernehme keine Verantwortung für verlorene Daten.

DELETE FROM table_a
WHERE user_id
NOT IN (SELECT user_id FROM users)

Hier werden einfach aus tablea alle Daten gelöscht die einer userid zugeordnet sind, die nicht mehr in der Tabelle users existiert.