SQL: поиск строк, содержащих заглавные и строчные буквы
Быстрый ответ
Для поиска строк, содержащих строчные буквы, воспользуйтесь шаблоном LIKE со схемой '%[a-z]%'. В случае поддержки регулярных выражений базой данных примените REGEXP с шаблоном '[a-z]'.
SQL с применением LIKE:
SELECT * FROM table WHERE column LIKE '%[a-z]%';
SQL со включенным REGEXP:
SELECT * FROM table WHERE column REGEXP '[a-z]';
Для сравнения с учетом регистров можно сравнить исходные значения столбца со значениями, приведенными к верхнему регистру с использованием UPPER(column).
SELECT * FROM table WHERE UPPER(column) != column;
Учет регистра: как обучить SQL различать его
Учет регистра: порядок сортировки
Чтобы обеспечить сортировку данных с учетом регистра, используйте COLLATE вместе с локацией сортировки, чувствительной к регистру.
SQL Server:
SELECT * FROM table WHERE column COLLATE Latin1_General_CS_AS LIKE '%[a-z]%';
Бинарное сравнение: не тривиальное решение
В MySQL применяется модификатор BINARY для активации чувствительности к регистру.
SELECT * FROM table WHERE BINARY column LIKE '%[a-z]%';
Сортировки: знай свой стандарт
Учтите настройки сортировки по умолчанию для корректного выполнения запросов.
Когда стоит использовать регулярные выражения
Для сложных шаблонов поиска используйте регулярные выражения, сохраняя при этом проверку регистра.
Визуализация
Представьте данный SQL-запрос как словарь, где каждое слово является строкой. Задача — обнаружить все слова со строчными буквами.
SELECT * FROM словарь WHERE слово REGEXP '[a-z]';
Ваш SQL-запрос выделит слова со строчными буквами:
словарь: ['ARTICLE', 'preposition', 'CONJUNCTION', 'adVERB']
: ⬆️
Вот слова, которые вы сможете обнаружить:
✨: ['preposition', 'adVERB']
Обработка символов вне ASCII: важность UTF-8
Если ваши данные включают символы за рамками ASCII, примените сортировку для UTF-8, обеспечивая верное учет регистра.
Преимущества специфической для языка сортировки
Выберите кодировку таблицы, соответствующую вашим настройкам (utf8), для корректной работы.
Поиск по шаблону: поддержка сортировки
При поиске с учетом регистра учтите характеристики вашей БД.
Сценарии использования: когда использовать регулярное выражение
Регулярные выражения—это мощный инструмент для сложных шаблонов. Используйте их при решении нетривиальных задач.
Проверка совместимости: различия SQL
Проверьте соответствует ли синтаксис вашего SQL используемой базе данных.
Полезные материалы
- PostgreSQL: Документация: 9.7. Поиск по шаблону — Официальное описание регулярных выражений в PostgreSQL.
- MySQL :: Руководство по MySQL 8.0 :: 12.8.2 Регулярные выражения — Справочник по использованию регулярных выражений в MySQL.
- LIKE (Transact-SQL) – SQL Server | Microsoft Learn – Инструкция от Microsoft по работе с командой LIKE.
- Список специальных символов для оператора LIKE в SQL – Stack Overflow — Обзор особенностей использования специальных символов в SQL на Stack Overflow.