Ciao a tutti
Ho una tabella di nome "prova" con questi campi:
- id (INT, autoinc, primary)
- value (VARCHAR)
- timefrom (DATETIME)
- timeto (DATETIME)
- hits (INT)
1. Devo controllare se esiste una riga dove "value=$miovalore" e $miadata si trovi fra timefrom e timeto
2. Se esiste, faccio un semplice hits=hits+1, altrimenti creo un nuovo record con hits = 1
Con REPLACE o con ON DUPLICATE KEY non si può fare non potendo avere valori UNIQUE (value, timefrom e timeto devono potersi ripetere)
Ho provato almeno per l'update la seguente query:
Devo utilizzare il secondo SELECT poiché non è possibile utilizzare come riferimento la stessa tabella in un UPDATEUPDATE prova SET hits=hits+1 WHERE id = (SELECT id FROM (SELECT id FROM prova WHERE value='$miovalore' AND $miadata BETWEEN timefrom AND timeto) AS x)
Avete qualche idea su come migliorare la query o adirittura fare l'inserimento se non esiste un record con value=$miovalore?
Grazie