Это не тот же запрос.
У меня нет большого опыта работы с MySQL, поэтому я не уверен, что оптимизатор запросов делает или не делает, но вот мои мысли от моего общего background (в основном ms sql server).
Как правило, анализатор запросов может принимать вышеуказанные два запроса и выводить из них один и тот же план (если они были одинаковыми), поэтому это не имеет значения. Я бы заподозрил, что между этими запросами нет разницы в производительности (которые эквивалентны)
select distinct username from users where company = ‘bbc’ or company = ‘itv’;
и
select username from users where company = ‘bbc’
union
select username from users where company = ‘itv’;
Теперь вопрос в том, будет ли разница между следующие запросы, о которых я на самом деле не знаю, но я подозреваю, что оптимизатор сделает его более похожим на первый запрос
select username from users where company = ‘bbc’ or company = ‘itv’;
и
select username from users where company = ‘bbc’
union all
select username from users where company = ‘itv’;
Мне удалось реализовать это, используя следующую опцию.
Переопределить getProfileOptions
WebSSOProfileOptions webProfile = super.getProfileOptions(context, exception);
if(prompt=login){
webProfile.setForceAuthN(true);
}
return webProfile;