Я пишу программу, которая отправляет электронное письмо по местному времени клиента. У меня есть метод .NET, который берет часовой пояс и время и часовой пояс места назначения и возвращает время в этом часовом поясе. Таким образом, мой метод состоит в том, чтобы выбрать каждый отдельный часовой пояс в базе данных, проверить, является ли это правильное время, используя метод, а затем выбрать каждого клиента из базы данных с этим часовым поясом.
Запрос будет выглядеть как один из них. Имейте в виду, что порядок набора результатов не имеет значения, так что объединение будет в порядке. Кто работает быстрее, или они действительно делают то же самое?
SELECT email FROM tClient WHERE timezoneID in (1, 4, 9)
или
SELECT email FROM tClient WHERE timezoneID = 1
UNION ALL SELECT email FROM tClient WHERE timezoneID = 4
UNION ALL SELECT email FROM tCLIENT WHERE timezoneID = 9
Редактировать: timezoneID - это внешний ключ для tTimezone, таблицы с первичным ключом timezoneID и поля типа timezoneName varchar (20).
Кроме того, я пошел с WHERE IN
, так как мне не хотелось открывать анализатор.
Редактировать 2: Запрос обрабатывает 200 тыс. Строк менее чем за 100 мс, поэтому на этом я закончил.