SQL 'LIKE' 使用 '%' 进行查询,其中搜索条件包含 '%'

标签 sql sql-server sql-like

我有一个 SQL 查询如下。

Select * from table 
where name like '%' + search_criteria + '%' 

如果search_criteria = 'abc',它将返回包含xxxabcxxxx的数据,这是可以的。

但是如果我的search_criteria = 'abc%',它仍然会返回包含xxxabcxxx的数据,但事实不应该是这样。

我该如何处理这种情况?

最佳答案

如果您希望将 search_criteria 中的 % 符号视为文字字符而不是通配符,请将其转义为 [%]

... where name like '%' + replace(search_criteria, '%', '[%]') + '%'

关于SQL 'LIKE' 使用 '%' 进行查询,其中搜索条件包含 '%',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803489/

相关文章:

mysql - 选择所有项目并按条件在相关表中计数

mysql - 不在 join/where 查询中选择重复项

sql - 等于操作中 "SQL_Latin1_General_CP1_CI_AS"和 "Modern_Spanish_CI_AS"之间的排序规则冲突

mysql - SQL 选择模式,例如column_name

mysql - 使用 mysql 查询的 IN 数组和 LIKE 条件

mysql - 输出某个类别的总数

sql - 存储过程问题中的VBA传递日期

sql-server - 如何从现有数据库生成模式

sql-server - DBContext SaveChanges 在内部是如何工作的?

MySQL : between value in string