SQL SELECT LIKE(不敏感shell)

我正在尝试执行SQL查询:

select * from table where column like '%value%'; 

但数据保存为“价值”(V是大写)。

当我执行这个查询时,我没有得到任何行。 我如何做这样的调用,不pipeangular色的shell如何,它都会寻找“价值”?

在列和search词中使用LOWER函数。 这样做,你保证,即使在查询是像%VaLuE%,这不会有问题

 select qt.* from query_table qt where LOWER(column_name) LIKE LOWER('%vAlUe%'); 

在表格上使用不区分大小写的sorting规则 ,或者强制使用小写字母,例如

 WHERE lower(column) LIKE lower('%value%'); 

如果你想这个列不区分大小写:

 ALTER TABLE `schema`.`table` CHANGE COLUMN `column` `column` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 

因此,你不必改变你的查询。

MySQL引擎将比使用lower()函数或任何其他技巧更快地处理您的查询。

而且我不确定使用较低的函数将是索引search性能的一个很好的解决scheme。

使用lower()函数:

 select t.* from table t where lower(column) like '%value%'; 

尝试使用不区分大小写的sorting规则

 select * from table where column like '%value%' collate utf8_general_ci 

您应该使用较低较高的函数来忽略大小写,而您正在使用likesearch某个字段。

 select * from student where upper(sname) like 'S%'; 

要么

 select * from student where lower(sname) like 'S%'; 

如果你正在使用PostgreSQL,一个简单的解决scheme是使用像(ILIKE)那样的不敏感 :

 SELECT * FROM table WHERE column ILIKE '%value%'