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: la condición existe
Este tutorial de MySQL explica cómo usar MySQL Condición de existencia Con sintaxis y ejemplos.
describir
La condición MySQL EXISTS se usa junto con una subconsulta y se considera “satisfecha” si la subconsulta devuelve al menos una fila. Se puede usar en declaraciones SELECT, INSERT, UPDATE o DELETE.
sintaxis
La sintaxis de la condición EXISTS en MySQL es:
WHERE EXISTS ( subquery );
parámetro o parámetro
Las subconsultas suelen ser declaraciones SELECT que comienzan con SELECT *, no listas de expresiones ni nombres de columnas. MySQL ignora las listas de expresiones en las subconsultas de todos modos.
notas
- Las declaraciones SQL que usan condiciones EXISTS en MySQL son muy ineficientes porque la subconsulta se vuelve a ejecutar para cada fila en la tabla de consulta externa. Hay formas más eficientes de escribir la mayoría de las consultas que no usan condiciones EXISTS.
Ejemplo: uso de la instrucción SELECT
Veamos un ejemplo sencillo.
La siguiente es una instrucción SELECT que usa la condición MySQL EXISTS:
SELECT * FROM customers WHERE EXISTS (SELECT * FROM order_details WHERE customers.customer_id = order_details.customer_id);
Este ejemplo de condición EXISTE de MySQL devolverá todos los registros en la tabla de clientes en los que haya al menos un registro en la tabla detalles_pedido con un id_cliente coincidente.
Ejemplo: declaración SELECT usando NOT EXISTS
Las condiciones de MySQL EXISTS también se pueden combinar con el operador NOT.
Por ejemplo,
SELECT * FROM customers WHERE NOT EXISTS (SELECT * FROM order_details WHERE customers.customer_id = order_details.customer_id);
Este ejemplo de MySQL EXISTE devolverá todos los registros en la tabla de clientes No Un registro en la tabla order_details para un customer_id dado.
Ejemplo: uso de la instrucción INSERT
El siguiente es un ejemplo de una declaración INSERT usando la condición MySQL EXISTS:
INSERT INTO contacts (contact_id, contact_name) SELECT supplier_id, supplier_name FROM suppliers WHERE EXISTS (SELECT * FROM orders WHERE suppliers.supplier_id = orders.supplier_id);
Ejemplo: uso de la instrucción UPDATE
El siguiente es un ejemplo de una instrucción UPDATE que utiliza la condición EXISTS de MySQL:
UPDATE suppliers SET supplier_name = (SELECT customers.customer_name FROM customers WHERE customers.customer_id = suppliers.supplier_id) WHERE EXISTS (SELECT * FROM customers WHERE customers.customer_id = suppliers.supplier_id);
Ejemplo: uso de la sentencia DELETE
El siguiente es un ejemplo de una declaración DELETE usando la condición MySQL EXISTS:
DELETE FROM suppliers WHERE EXISTS (SELECT * FROM orders WHERE suppliers.supplier_id = orders.supplier_id);