В этом учебном пособии вы узнаете, как использовать MariaDB условие EXISTS с синтаксисом и примерами.
Описание
MariaDB условие EXISTS используется в сочетании с подзапросом и считается "выполненным", если подзапрос возвращает хотя бы одну строку. Его можно использовать в операторе SELECT, INSERT, UPDATE или DELETE.
Синтаксис
Синтаксис условия EXISTS в MariaDB:
Параметры или аргументы
- subquery
- Оператор SELECT, который обычно начинается с SELECT *, а не со списка выражений или имен столбцов. В любом случае MariaDB игнорирует список выражений в подзапросе.
Примечание
- Операторы SQL, которые используют условие EXISTS в MariaDB, очень неэффективны, поскольку подзапрос перезапускается для КАЖДОЙ строки в таблице внешнего запроса. Есть более эффективные способы написания большинства запросов, которые не используют условие EXISTS.
Пример с оператором SELECT
Рассмотрим пример использования условия EXISTS в операторе SELECT в MariaDB.
Например:
1 2 3 4 5 |
SELECT * FROM sites WHERE EXISTS (SELECT * FROM pages WHERE pages.site_id = sites.site_id); |
В этом примере условия EXISTS будут возвращены все записи из таблицы sites, где в таблице pages есть хотя бы одна запись с совпадающим site_id.
Пример с оператором SELECT с использованием NOT EXISTS
Рассмотрим пример использования условия EXISTS с оператором NOT в MariaDB.
Например,
1 2 3 4 5 |
SELECT * FROM sites WHERE NOT EXISTS (SELECT * FROM pages WHERE pages.site_id = sites.site_id); |
Этот пример MariaDB EXISTS вернет все записи из таблицы sites, где в таблице pages нет записей для данного site_id.
Пример с оператором INSERT
Рассмотрим пример использования условия EXISTS в операторе INSERT в MariaDB.
Например:
1 2 3 4 5 6 7 |
INSERT INTO contacts (contact_id, contact_name) SELECT site_id, site_name FROM sites WHERE EXISTS (SELECT * FROM pages WHERE pages.site_id = sites.site_id); |
Пример с оператором UPDATE
Рассмотрим пример использования условия EXISTS в операторе UPDATE в MariaDB.
Например:
1 2 3 4 5 |
UPDATE sites SET site_name = 'Google.com' WHERE EXISTS (SELECT * FROM pages WHERE pages.site_id = sites.site_id); |
Пример с оператором DELETE
Рассмотрим пример использования условия EXISTS в операторе DELETE в MariaDB.
Например:
1 2 3 4 |
DELETE FROM sites WHERE EXISTS (SELECT * FROM pages WHERE pages.site_id = sites.site_id); |