如何在 sql 中的 where 子句中使用 like 和 substring
how to use like and substring in where clause in sql
希望有人能帮助我并为我解释这个查询,
为什么第一个查询 return 结果而第二个查询没有:
编辑:
第一个查询:
select name from Items where name like '%abc%'
第二个查询:
select name from Items where name like substring('''%abc%''',1,10)
为什么第一个 return 结果而第二个 return 没有结果,而
substring('''%abc%''',1,10)='%abc%'
如果这背后有逻辑,是否有另一种方法可以执行类似第二个查询的操作,
我的 porpuse 是将像 '''abc''' 这样的字符串转换为 'abc' 以便使用 like 语句,
您可以连接字符串以形成 LIKE
字符串。要 trim 字符串中的前 3 个和最后 3 个字符,请使用 SUBSTRING
和 LEN
函数。以下示例假定您的匹配字符串名为 @input
并以 3 个引号开始和结束,需要删除这些引号才能找到匹配项:
select name from Items where name like '%' + SUBSTRING(@input, 3, LEN(@input) - 4) + '%'
希望有人能帮助我并为我解释这个查询, 为什么第一个查询 return 结果而第二个查询没有:
编辑: 第一个查询:
select name from Items where name like '%abc%'
第二个查询:
select name from Items where name like substring('''%abc%''',1,10)
为什么第一个 return 结果而第二个 return 没有结果,而
substring('''%abc%''',1,10)='%abc%'
如果这背后有逻辑,是否有另一种方法可以执行类似第二个查询的操作,
我的 porpuse 是将像 '''abc''' 这样的字符串转换为 'abc' 以便使用 like 语句,
您可以连接字符串以形成 LIKE
字符串。要 trim 字符串中的前 3 个和最后 3 个字符,请使用 SUBSTRING
和 LEN
函数。以下示例假定您的匹配字符串名为 @input
并以 3 个引号开始和结束,需要删除这些引号才能找到匹配项:
select name from Items where name like '%' + SUBSTRING(@input, 3, LEN(@input) - 4) + '%'