2011-04-01 26 views
6

Tengo problemas para escribir una consulta. Digamos que tengo un coche lleno tabla de marcas y modelos, pero yo quiero para deshacerse de todas las filas que no están asociados con una lista de modelos, he escrito esto ...Mysql borrar todas las filas (donde col! = This o col! = Eso o col! = Otherthing)

DELETE FROM `cars` WHERE 
`make` != 'Ford' OR 
`make` != 'Toyota' OR 
`make` != 'Cadillac' 

Sin embargo, es la eliminación todas las filas ¿Cómo escribo esto para mantener Ford, Toyota y Cadiillac, pero elimino Pontiac, Datsun y Renault?

¡Gracias por tu ayuda en esto!

+1

Su lógica es ilógica –

Respuesta

11

más fácil de leer:

DELETE FROM `cars` WHERE `make` NOT IN ('Ford', 'Toyota', 'Cadillac') 
+0

+1 definitivamente otra buena opción –

4
DELETE FROM cars 
WHERE make <> 'Ford' 
AND make <> 'Toyota' 
AND make <> 'Cadillac' 

Su consulta fue la eliminación de todas las filas porque:

  1. Usted fue retirando en primer lugar todas las filas que no fueron Ford (deja sólo Ford)
  2. Usted fue luego eliminar todas las filas que no eran Toyota (no deja nada)
+1

Sí, eso funciona. Gracias. Y gracias. – superUntitled

Cuestiones relacionadas