UNION ALL SELECT NULL, *, NULL, NULL FROM email. I understand what this does and why; the hacker needs to create a query that has the same number of columns as the query it's being merged with, and shifted around the * to make sure the emails are displayed.
Почему используется значение NULL? Все просто, типы данных в каждом столбце должны быть совместимы между исходным и внедренным запросами.
' UNION SELECT NULL-- ' UNION SELECT NULL,NULL-- ' UNION SELECT NULL,NULL,NULL-- etc.
NULL as [yyyn] (obviously with a progressive value in place of n).
UNION ALL SELECT NULL, *, NULL, NULL FROM email. Я понимаю, что это делает и почему; хакеру необходимо создать запрос с таким же количеством столбцов, что и запрос, с которым он соединен, и сдвиг вокруг *, чтобы убедиться, что сообщения электронной почты отображаются.
The COALESCE function in BigQuery will return the first non-NULL expression. It's often used to safely handle NULL values.
The IS NULL operator is used to test for empty values (NULL values). The following SQL lists all customers with a NULL value in the "Address" field
Пришло время поговорить об объединении данных по средствам конструкции union и union all, так как это иногда бывает очень полезно, и без использования такой конструкции бывает порой не обойтись. Примеры будем писать в СУБД MSSQL 2008, используя язык SQL.
В свете пункта 12. Значение NULL не будет лишним отметить, что все поля через точку в запросе для пустых ссылок содержат значение NULL. Об этом часто забывают и считают, что платформа по аналогии с объектной моделью будет ставить значения по-умолчанию для нужных типов.
Чтобы отменить такое поведение - нужно указать ключевое слово ALL, вот так: UNION ALL. См. также команду JOIN, которая объединяет связанные таблицы. Синтаксис. С удалением дублей: SELECT * FROM имя_таблицы1 WHERE условие UNION SELECT * FROM имя_таблицы2...