Datenbank Eintrag löschen wenn größer als

D

dorfstern

Guest
Hallo,
ich versuche die ganze zeit Daten aus einer Datenbank zu löschen wenn sie größer als 50 sind,
also 50 steht für das alter einer Spielfigur.
das ist mein Code, der leider nicht gehen will :-(

$db->query("DELETE FROM w".$world_id."_spielfigur WHERE v_age>='50' AND available='1'");

hat jemand eine idee woran das liegen kann?
hab den code schon mehrmals verändert, ohne Erfolg.
Gruß Olli
 
Werbung:
Ja, es ist ein Unterschied, ob Du Werte als String oder Zahl vergleichst.
Select 'Bullshit' where '110' >= '50'
versus
Select 'Bingo' where 110 >= 50
 
klappt so auch nicht
$db->query("DELETE FROM w".$world_id."_spielfigur WHERE v_age >=50 AND available=1");

mein spieler ist immer noch 51 jahre und sollte ab 50 gelöscht werden wenn sobald aviable (also wenn er nicht arbeitet)
 
Code:
edb=# create table dorfstern(person_id int primary key, geb date, available bool);
CREATE TABLE
edb=*# insert into dorfstern values (1, '1960-01-01',true);
INSERT 0 1
edb=*# insert into dorfstern values (2, '1960-01-01',false);
INSERT 0 1
edb=*# insert into dorfstern values (3, '2020-01-01',true);
INSERT 0 1
edb=*# select * from dorfstern ;
 person_id |        geb         | available
-----------+--------------------+-----------
         1 | 01-JAN-60 00:00:00 | t
         2 | 01-JAN-60 00:00:00 | f
         3 | 01-JAN-20 00:00:00 | t
(3 rows)

edb=*# delete from dorfstern where geb < current_date - '50 year'::interval and available;
DELETE 1
edb=*# select * from dorfstern ;
 person_id |        geb         | available
-----------+--------------------+-----------
         2 | 01-JAN-60 00:00:00 | f
         3 | 01-JAN-20 00:00:00 | t
(2 rows)

edb=*#


works for me.
 
das sind nur spielfigur daten, also wenn man einen neuen bewohner anheuert ist er 18 jahre (18 steht dann unter v_age in der DB) und wird jeden tag 1 Jahr älter mit diesem befehl:
$db->query("UPDATE w".$world_id."_spielfigur SET v_age=v_age+1");
und sobald die über 50 jahre wird, soll dieser befehl die spielfigur (kein echter spieler) löschen
$db->query("DELETE FROM w".$world_id."_spielfigur WHERE v_age >=50 AND available=1");

das v_age hat nicht mit anmeldungen. Muss ich wohl doch ein Spezialist beauftragen :-/

gruß olli
 
Werbung:
Hi,
schick mal die Ergebnisse von:

DESC Tabellenname;

und

SELECT * FROM Tabellenname LIMIT 10;

Dann finden wir dein Problem schon
 
Zurück
Oben