我在SQL Server 2012中有这个表:
Id INT
DomainName NVARCHAR(150)
该表具有这些DomainName值
这个值:
mail.othersite.com
我需要选择字符串以列值结尾的行,对于此值,我需要获取行no.3 othersite.com
这是这样的:
DomainName Like '%value'
但反过来......
'value' Like %DomainName
答案 0 :(得分:48)
您可以使用此类查询:
SELECT * FROM TABLE1
WHERE 'value' LIKE '%' + DomainName
答案 1 :(得分:1)
它适用于 mysql 服务器。 [ LIKE '%' || value ] 效果不佳,因为当 value 以数字开头时,就像不返回 true 一样。
SELECT * FROM TABLE1 WHERE DomainName like CONCAT('%', value)
答案 2 :(得分:0)
在Oracle中,可以将REGEXP_LIKE字符串函数用于搜索的字符串开始/结束。此函数的第一个参数是表达式/源字符串,第二个参数是模式/搜索字符串。将Dollar $用作值的结尾,将^用作值的开头。例如
select * from TABLE1 where REGEXP_LIKE(DomainName, :value ||'$');
如果在不同值之间具有OR条件,则使用以下管道|语法。
select * from TABLE1 where REGEXP_LIKE(DomainName, 'value1$|value2$|value2$');
Refer this link for more info on REGEXP_LIKE string function