Mysql IF mit Replace und Insert verbinden

vistahr

Grünschnabel
Hi,

ich bin dabei für ein Loginsystem die letzten 10logs zu speichern.

Der Replacebefehl funktioniert einwandfrei.

Problem ist, dass der Replacebefehl nur funktioniert, wenn 10 Einträge in der Datenbank vorhanden sind.

Man könnte, um das Problem zu umgehen bei der erstellung eines Benutzers 10leere Dummyeinträge erstellen (ich muss ja nich weiter erläutern, warum ich das ungerne machen möchte ;-) )

Meine Idee ist jetzt, mittels einer IF-Abfrage, abzufragen ob schon 10 Einträge vorhanden sind.
Wenn 10Einträge vorhanden sind, dann möchte ich den Replace SQL-code benutzen und wenn weniger als 10vorhanden sind, muss ein neuer Eintrag erstellt werden.



Problem ist jetzt, dass ich einen Syntaxfehler bekomme und Ich nicht weiss , ob das überhaupt praktisch so funktionieren kann.

Ich hoffe jemand hat mcih verstanden und kann mir helfen :)


Code:
SELECT IF(

  (COUNT(user_id) FROM admin_logins WHERE user_id='1') = 10,
  
  (REPLACE INTO admin_logins (login_id,user_id,timestamp) SELECT login_id,user_id,NOW() FROM admin_logins  WHERE user_id='1' ORDER BY timestamp ASC LIMIT 1),
  
  (INSERT INTO admin_logins (user_id,timestamp) VALUES ('1',NOW()))

)
 
Zurück