开发者

Searching Technique in SQL (Like,Contain)

I want to compare and select a field from DB using Like keyword or any other technique.

My q开发者_如何学编程uery is the following:

SELECT * FROM Test WHERE name LIKE '%xxxxxx_Ramakrishnan_zzzzz%';

but my fields only contain 'Ramakrishnan'

My Input string contain some extra character xxxxxx_Ramakrishnan_zzzzz

I want the SQL query for this. Can any one please help me?


You mean you want it the other way round? Like this?

Select * from Test where 'xxxxxx_Ramakrishnan_zzzzz' LIKE '%' + name + '%';


You can use the MySQL functions, LOCATE() precisely like,

SELECT * FROM WHERE LOCATE("Ramakrishnan",input) > 0 


Are the xxxxxx and zzzzz bits always 6 and 5 characters? If so, then this is doable with a bit of string cutting.

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)+'%'

Results in:

id  name
1   Ramakrishnan
3   xxxxxx_Ramakrishnan_zzzzz

If they are variable lengths, then it will be a horrible construction of SUBSTRING,CHARINDEX, REVERSE and LEN functions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜