Объединение LIKE и IN для расширенных запросов SQL
В SQL оператор LIKE часто используется для сопоставления с образцом, а оператор IN позволяет нам сопоставлять значение со списком конкретных значений. Хотя эти операторы служат разным целям, их можно комбинировать для создания более мощных запросов.
Давайте рассмотрим следующий сценарий: у вас есть таблица со столбцом с именем «company_id», и вы хотите выбрать все строки, в которых «company_id» начинается с определенных строк, таких как «M510», «M615», «M515» и «M612».
Одним из подходов может быть использование оператора LIKE следующим образом:
SELECT * FROM tablename WHERE company_id LIKE 'M510%'
Однако это будет точно соответствовать только строкам, начинающимся с «M510». Чтобы сопоставить несколько строк, вам придется создать несколько запросов.
Использование подстроки с IN
Более эффективное решение — использовать подстроку с оператором IN. Функция SUBSTRING() извлекает указанное количество символов из строки, начиная с заданной позиции.
Для нашего сценария мы можем использовать следующий запрос:
SELECT * FROM tablename WHERE SUBSTRING(company_id, 1, 4) IN ('M510', 'M615', 'M515', 'M612')
Этот запрос извлекает первые 4 символа из столбца "company_id" и проверяет, он существует в списке значений, указанных в предложении IN. Объединив подстроку с IN, мы можем добиться желаемого сопоставления с образцом без необходимости перебирать массив строк.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3