在SQL中搜索技术(Like,Contain)
问题描述:
我想比较并使用Like
关键字或任何其他技术从数据库中选择一个字段。在SQL中搜索技术(Like,Contain)
我的查询如下:
SELECT * FROM Test WHERE name LIKE '%xxxxxx_Ramakrishnan_zzzzz%';
但我的字段仅包含“莱玛克里斯南”
我的输入字符串包含一些额外的字符xxxxxx_Ramakrishnan_zzzzz
我想这个SQL查询。谁能帮帮我吗?
答
你的意思是你想要它的另一种方式?喜欢这个?
Select * from Test where 'xxxxxx_Ramakrishnan_zzzzz' LIKE '%' + name + '%';
答
您可以使用MySQL的功能,找到()正是像,
SELECT * FROM WHERE LOCATE("Ramakrishnan",input) > 0
+0
OP在SQL Server上。 – 2010-07-19 08:26:16
答
是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,倒档和LEN功能。
我的一个字段“FormTypes”包含一些像这样的'Form1','Form2','Form3'等等的值。我得到这样的输入字符串'xxxhhuuForm1yyuusss'.Form1在输入字符串中,我想从输入字符串中识别出这个FormType,并使用like关键字进行比较,Sql中是否有任何可用的选项用于此目的? – Ramakrishnan 2010-07-19 07:02:12
请帮助我,谢谢。 – Ramakrishnan 2010-07-19 07:02:42
@Ramakrishnan:这种方法对我来说很好。试一试:) – onedaywhen 2010-07-19 07:32:14