MySQL: declaración de eliminación

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MySQL: declaración de eliminación

Este tutorial de MySQL explica cómo usar MySQL eliminar declaración Con sintaxis y ejemplos.

describir

La declaración MySQL DELETE se usa para eliminar uno o más registros de una tabla en MySQL.

sintaxis

La forma más simple de la instrucción DELETE en MySQL es:

DELETE FROM table
[WHERE conditions];

Sin embargo, la sintaxis completa de la declaración DELETE en MySQL es:

DELETE [ LOW_PRIORITY ] [ QUICK ] [ IGNORE ] FROM table
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];

parámetro o parámetro

PRIORIDAD_BAJA Opcional. Si se proporciona LOW_PRIORITY, las eliminaciones se retrasarán hasta que no se lea ningún proceso de la tabla. LOW_PRIORITY se puede usar con tablas MyISAM, MEMORY y MERGE que usan bloqueo a nivel de tabla. Rápido opcional. Si se proporciona QUICK, las hojas de índice no se fusionarán durante el proceso de eliminación, lo que hará que las eliminaciones de las tablas MyISAM sean más rápidas. Ignorar opcional. Si se proporciona IGNORE, se ignorarán todos los errores encontrados durante la eliminación. IGNORE se introdujo en MySQL 4.1.1. tabla La tabla de la que desea eliminar registros. La condición WHERE es opcional. La condición que debe cumplir el registro a borrar. Si no se proporciona ninguna condición, se eliminarán todos los registros de la tabla. La expresión ORDER BY es opcional. Al limitar el número de registros para eliminar, se puede usar junto con LIMIT para ordenar correctamente los registros. Las restricciones son opcionales. Si se proporciona LIMIT, controla el número máximo de registros eliminados de la tabla. Como máximo, la cantidad de registros especificados por number_rows se eliminará de la tabla.

notas

  • No necesita enumerar los campos en la declaración DELETE de MySQL porque está eliminando la fila completa de la tabla.

Ejemplo – con una condición

Veamos un ejemplo simple de consulta DELETE de MySQL con solo una condición en la instrucción DELETE.

Por ejemplo:

DELETE FROM contacts
WHERE last_name="Johnson";

Este ejemplo de MySQL DELETE eliminará todos los registros con un apellido de Johnson de la tabla de contactos.

Es posible que desee verificar la cantidad de filas que se eliminarán.Puede determinar la cantidad de filas que se eliminarán llamando a la función mysql_info o ejecutando la siguiente declaración SELECT de MySQL adelante Ejecutar borrar.

SELECT count(*)
FROM contacts
WHERE last_name="Johnson";

Ejemplo – con dos condiciones

Veamos un ejemplo de DELETE de MySQL donde solo hay dos condiciones en la instrucción DELETE.

Por ejemplo:

DELETE FROM contacts
WHERE last_name="Johnson"
AND contact_id < 1000;

Este ejemplo de MySQL DELETE eliminará todos los registros con un last_name de “Johnson” y un customer_id menor a 1000 de la tabla de contactos.

Es posible que desee verificar la cantidad de filas que se eliminarán.Puede determinar la cantidad de filas que se eliminarán llamando a la función mysql_info o ejecutando la siguiente declaración SELECT de MySQL adelante Ejecutar borrar.

SELECT count(*)
FROM contacts
WHERE last_name="Johnson"
AND contact_id < 1000;

Ejemplo: uso del modificador LIMIT

Veamos un ejemplo de MySQL DELETE donde usamos el modificador LIMIT para controlar la cantidad de registros eliminados.

Por ejemplo:

DELETE FROM contacts
WHERE last_name="Johnson"
ORDER BY contact_id DESC
LIMIT 1;

Este ejemplo de MySQL DELETE eliminará un registro (especificado por LIMIT 1) de la tabla de contactos, donde el apellido es “Johnson”. DELETE se ordena por contact_id en orden descendente, por lo que solo se eliminará de la tabla el registro con el contact_id más alto con un apellido de ‘Johnson’. Todos los demás registros en la tabla de contactos con un last_name de “Johnson” permanecerán en la tabla.

Si desea eliminar el contact_id más pequeño cuyo apellido es “Johnson”, puede reescribir la declaración DELETE de la siguiente manera:

DELETE FROM contacts
WHERE last_name="Johnson"
ORDER BY contact_id ASC
LIMIT 1;

Alternativamente, puede usar la siguiente declaración DELETE para eliminar el último registro en la tabla de contactos (suponiendo que contact_id sea un número de secuencia):

DELETE FROM contacts
ORDER BY contact_id DESC
LIMIT 1;

Ejemplo: uso de la condición EXISTS

También puede realizar eliminaciones más complejas.

Es posible que desee eliminar registros en una tabla en función de los valores en otra tabla. Dado que no se pueden enumerar varias tablas en la cláusula MySQL FROM al realizar una eliminación, se puede usar la cláusula MySQL EXISTS.

Por ejemplo:

DELETE FROM suppliers
WHERE EXISTS
  ( SELECT *
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id
    AND customer_id > 500 );

Este ejemplo de MySQL DELETE eliminará todos los registros en la tabla de proveedores donde haya un registro en la tabla de clientes con un id_cliente mayor que 500 y el id_cliente coincida con el id_proveedor.

Es posible que desee verificar la cantidad de filas que se eliminarán.Puede determinar la cantidad de filas que se eliminarán llamando a la función mysql_info o ejecutando la siguiente declaración SELECT de MySQL adelante Ejecutar borrar.

SELECT COUNT(*) FROM suppliers
WHERE EXISTS
  ( SELECT *
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id
    AND customer_id > 500 );