The EXISTS condition is considered “to be met” if the subquery returns at least one row.
如果子查詢中返回至少有一行,EXISTS 條件才被認(rèn)為是“符合條件”。
EXISTS 條件語法:
SELECT columns
FROM tables
WHERE EXISTS ( subquery );
EXISTS的條件可以用在任何有效的SQL語句 – 選擇,插入,更新或刪除。
例1:
讓我們在一個(gè)簡單的例子。下面是一個(gè)使用EXISTS條件的SQL語句,:
SELECT *
FROM suppliers
WHERE EXISTS
(select *
from orders
where suppliers.supplier_id = orders.supplier_id);
這個(gè)SELECT語句將返回供應(yīng)商表中與訂單表中至少有一條記錄是supplier_id相同的的供應(yīng)商信息。
例2 – NOT EXISTS
EXISTS 條件也可以與NOT運(yùn)算符結(jié)合。
For example,
SELECT *
FROM suppliers
WHERE not exists (select * from orders Where suppliers.supplier_id = orders.supplier_id);
這將返回供應(yīng)商表中與訂單表中沒有一條記錄是supplier_id相同的的供應(yīng)商信息。
例3 -刪除語句
下面是一個(gè)利用了EXISTS 條件
sql刪除語句,例如:
DELETE FROM suppliers
WHERE EXISTS
(select *
from orders
where suppliers.supplier_id = orders.supplier_id);
例4 – 修改語句
下面是一個(gè)使用EXISTS 條件的
sql修改語句:
UPDATE suppliers
SET supplier_name = ( SELECT customers.name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id)
WHERE EXISTS
( SELECT customers.name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id);
例5 – 注入語句
下面是一個(gè)使用EXISTS 條件的
sql注入語句:
INSERT INTO suppliers
(supplier_id, supplier_name)
SELECT account_no, name
FROM suppliers
WHERE exists (select * from orders Where suppliers.supplier_id = orders.supplier_id);
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。