Я разрабатываю запрос, который извлекает строки из большой таблицы на основе параметров, выраженных в виде диапазонов (в частности, лет). В некоторых случаях я хочу извлекать строки на основе 3 конкретных значений (например, извлекать записи о клиентах, где номер клиента равен # 001, # 002 и # 003).
Что касается вопроса о диапазоне, мне интересно, есть ли синтаксис для условного оператора WHERE, который работает быстрее, чем другие:
IN ()
BETWEEN ()
high.range> = data> = low.range
Для опции IN () я мог бы написать скрипт, который переводит годы в список лет от низкого до высокого включительно. Таким образом, для диапазона от 2000 до 2004 года это будет IN («2000», «2001», «2002», «2003», «2004»). Это было бы дополнительным шагом программирования вне MySQL, но это не сложно для меня.
Я понимаю, что есть и другие вещи, которые я могу сделать, чтобы ускорить процесс (например, использование кластерного индекса), но я просто хотел посмотреть, есть ли какое-то отличие от того, какой синтаксис sql использовать после оператора WHERE.