在SQL中如何检查字符串是否包含子字符串(不区分大小写)?

时间:2014-04-26 17:51:36

标签: sql psql

SELECT * FROM products WHERE name LIKE '%a%'

在区分大小写时这可行,但如何不敏感地搜索大小写?

提前

4 个答案:

答案 0 :(得分:3)

简单回答:

SELECT * FROM products WHERE lower(name) LIKE '%a%'

答案 1 :(得分:0)

  SELECT * FROM products WHERE nam LIKE BINARY '%a%'
也可以使用

collate选项,here是如何通过mysql教程使其区分大小写。

答案 2 :(得分:0)

在较大的字符串中搜索您可以使用 CHARINDEX()

的子字符串

答案 3 :(得分:0)

如果您使用的是TSQL,则可能需要在执行搜索时指定不区分大小写的排序规则。

e.g。

create table tbl(str varchar(10))

insert into tbl values ('GaP'), ('GAP')

--This will only return 'GaP'
select * from tbl where str collate SQL_Latin1_General_CP1_CS_AS like '%a%'

--This will return both values
select * from tbl where str collate SQL_Latin1_General_CP1_CI_AS like '%a%'