我正在寻找一个SQL查询,该查询可为我提供ColumnX包含任何小写字母(例如“ 1234aaaa5789”)的所有行。大写相同。
Answers:
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
这应该适用于像åäöøüææï这样的有趣人物。您可能需要为表使用特定于语言的utf-8归类。
Latin1_General_CS_AS
引起了错误。COLLATE latin1_general_cs
虽然工作。
用于搜索所有小写的行
SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
这是我对utf8编码的表和utf8_unicode_ci列执行的操作,这似乎并没有完全发布:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
在MS SQL Server中使用COLLATE子句。
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
添加COLLATE Latin1_General_CS_AS
使搜索区分大小写。
SQL Server安装的默认排序规则SQL_Latin1_General_CP1_CI_AS
不区分大小写。
要更改任何表的any列的排序规则,请在查询后永久运行。
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
要了解任何表的列排序规则,请按照存储过程运行。
EXEC sp_help DatabaseName
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';
我必须将BINARY添加到ColumnX,以得到区分大小写的结果
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';
在Posgresql中,您可以使用 ~
例如,您可以搜索所有col_a
带有小写字母的行
select * from your_table where col_a '[a-z]';
您可以根据需要修改Regex表达式。
问候,