我想使用Like
关键字或任何其他技术来比较和选择数据库中的字段。
我的查询如下:
SELECT * FROM Test WHERE name LIKE '%xxxxxx_Ramakrishnan_zzzzz%';
但我的字段只包含'Ramakrishnan'
我的输入字符串包含一些额外字符xxxxxx_Ramakrishnan_zzzzz
我想要SQL查询。任何人都可以帮助我吗?
答案 0 :(得分:2)
你的意思是你想要反过来?喜欢这个?
Select * from Test where 'xxxxxx_Ramakrishnan_zzzzz' LIKE '%' + name + '%';
答案 1 :(得分:0)
您可以使用MySQL函数,LOCATE(),就像
一样SELECT * FROM WHERE LOCATE("Ramakrishnan",input) > 0
答案 2 :(得分:0)
xxxxxx和zzzzz位是否总是6个和5个字符?如果是这样的话,这可以通过一些字符串切割来实现。
with Test (id,name) as (
select 1, 'Ramakrishnan'
union
select 2, 'Coxy'
union
select 3, 'xxxxxx_Ramakrishnan_zzzzz'
)
Select * from Test where name like '%'+SUBSTRING('xxxxxx_Ramakrishnan_zzzzz', 8, CHARINDEX('_',SUBSTRING('xxxxxx_Ramakrishnan_zzzzz',8,100))-1)+'%'
结果:
id name
1 Ramakrishnan
3 xxxxxx_Ramakrishnan_zzzzz
如果它们是可变长度,则它将是SUBSTRING,CHARINDEX,REVERSE和LEN函数的可怕构造。