#sql
#sql
Вопрос:
Вопрос, если кто-то неправильно ввел сравнение в AND части предложения WHERE, чтобы в итоге сравнить значение с самим собой, выдаст ли это ошибку или оно просто завершится беззвучно? Я спрашиваю, потому что я наткнулся на предложение WHERE, которое включает следующую строку:
WHERE ...
AND (note_details.id_number = note_details.id_number)
Как это будет обработано?
Комментарии:
1. Есть ли какие-либо переменные, используемые в коде? Это помогло бы увидеть весь код, чтобы иметь возможность определить, было ли то, что вы видите, преднамеренным или по ошибке.
2. Я только что получил подтверждение от человека, который написал код, что это была опечатка.
Ответ №1:
Это сработало бы. Ошибки нет.
Логика:
where x = x
эквивалентно:
where x is not null
Комментарии:
1. Это то, что я подумал. Но есть ли законная причина для написания этого кода, или, скорее всего, это опечатка, которая должна была сравнивать значения из двух разных таблиц?
2. @Banon . , , я не могу придумать причину, по которой кто-то написал бы этот код. Иногда люди пишут что-то подобное, например
coalesce(x, '') = x
.3. Да, спасибо, я связался с человеком, который изначально написал запрос, и они поняли, что добавили эту проверку по ошибке.