Я ищу SQL-запрос, который дает мне все строки, где ColumnX содержит любую строчную букву (например, "1234aaaa5789" ). То же самое для прописных букв.
Как найти строки, которые имеют значение, содержащее строчную букву
Ответ 1
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
Это должно работать со смешными персонажами, такими как åäöøüæï. Возможно, вам понадобится использовать настройку utf-8 для конкретной таблицы.
Ответ 2
SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS
Это сделает поиск с учетом регистра.
ИЗМЕНИТЬ
Как указано в kouton здесь комментарий и tormuto здесь, кто сталкивается с проблемой с приведенной ниже сортировкой
COLLATE Latin1_General_CS_AS
должен сначала проверить сопоставление по умолчанию для своего SQL-сервера, их соответствующей базы данных и соответствующей колонки; и передать в настройках по умолчанию выражение запроса. Список сопоставлений можно найти здесь.
Ответ 3
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
Ответ 4
для поиска всех строк в нижнем регистре
SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
Спасибо Manesh Joseph
Ответ 5
В MS SQL сервере используйте предложение COLLATE.
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
Добавление COLLATE Latin1_General_CS_AS
делает поиск чувствительным к регистру.
SQL_Latin1_General_CP1_CI_AS
сортировки по умолчанию для SQL Server SQL_Latin1_General_CP1_CI_AS
не чувствительны к регистру.
Чтобы изменить параметры сортировки любого столбца для любой таблицы, выполните следующий запрос.
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
Чтобы узнать параметры сортировки столбца для любой таблицы, выполните следующую хранимую процедуру.
EXEC sp_help DatabaseName
Источник: SQL SERVER - Сортировка - Чувствительный к регистру поиск SQL-запросов
Ответ 6
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';
Ответ 7
Вот как я это сделал для таблицы в кодировке utf8 и столбца utf8_unicode_ci, который, похоже, не был опубликован точно:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
Ответ 8
Я не эксперт по MySQL, я бы предложил вам посмотреть REGEXP
.
SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';
Ответ 9
В Posgresql вы можете использовать ~
Например, вы можете искать все строки с col_a
с любой буквой в нижнем регистре
select * from your_table where col_a '[a-z]';
Вы можете изменить выражение Regex в соответствии с вашими потребностями.
Привет,
Ответ 10
- для Sql
SELECT *
FROM tablename
WHERE tablecolumnname LIKE '%[a-z]%';
Ответ 11
Мне нужно добавить BINARY в ColumnX, чтобы получить результат как с учетом регистра
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';
Ответ 12
Я сделал что-то вроде этого, чтобы узнать строчные буквы.
SELECT *
FROM YourTable
where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)