- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Query MySql di delete
-
Query MySql di delete
Ciao!
Volevo chiedervi un parere.
Ho una tabella che mi rappresenta dei cani. Ogni cane ha un "id", un attributo "madre" e un attributo "padre" che sono puntatori a record della stessa tabella. Vorrei fare una query che mi cancella un cane se e solo se esso non è padre di altri cani (per non rompere i legami tra padri-figli).
Quindi immaginavo una cosa tipo (es. dove cancello il cane con id=50)DELETE FROM tabella
WHERE ID='50' AND
(SELECT COUNT(*) FROM tabella WHERE PADRE='50')=0Pero' la cosa cosi comè non funziona. Consigli? e se gli ID da cancellare sono multipli?
Grassie! ^_^
-
Forse la strada a cui penso io è un pochino più lunga, ma perchè non fai DUE query ?
Nella prima verifichi che il Cane da eliminare non sia Padre di nessuno e poi con una IF ti comporti di conseguenza (se non è Padre fai una semplice DELETE invece se è Padre non fai nulla)
-
Ciao!
Grazie di vermi risposto!
Per la tua idea : si , ci avevo pensato ma in questo modo dovrei far interagire php e mysql. Fattibile pero' se riuscivo ad ottimizzare con una singola query era piu carino!
Cmq intanto faro come dicevi anche tu ^_^
-
Quando mi capita auna cosa così di solito faccio una select che mi seleziona tutte le righe da cancellare e poi usanto il $row_query in un ciclo li cancello tutte. esempio
$query=select....
$row_querydo{
DELETE .... WHERE $row_query['padre']
} while ($row_query = mysql_fetch_assoc($query));
-
Ciao,
Grazie a PippoJoe e Mikele di Sagit per l'aiuto!
a presto ^_^