+ -
当前位置:首页 → 问答吧 → 怎样与数据库中的关键字匹配?

怎样与数据库中的关键字匹配?

时间:2011-11-07

来源:互联网

数据库中存了一列关键字,如:
num keywords
1 "中华"
2 "机械"
3 "学习"
4 "程序"

用户输入一串字符串(如"机械应用程序"),怎样查找它包含了哪些关键字?

SQL查询语句应该怎么写?我需要输出前面的列号

谢谢!

作者: yjukh   发布时间: 2011-11-07

select * from tb where charindex(keywords,@str)>0

作者: qianjin036a   发布时间: 2011-11-07

SQL code
select num from tb where '机械应用程序' like '%'+keywords+'%'

作者: ssp2009   发布时间: 2011-11-07

只要列号:
select num from tb where charindex(keywords,@str)>0

作者: qianjin036a   发布时间: 2011-11-07

SQL code
use Tempdb
go
--> --> 
 
if not object_id(N'Tempdb..#T') is null
    drop table #T
Go
Create table #T([num] int,[keywords] nvarchar(2))
Insert #T
select 1,N'中华' union all
select 2,N'机械' union all
select 3,N'学习' union all
select 4,N'程序'
Go
DECLARE @str NVARCHAR(1000)
SET @str='机械应用程序'
Select * from #T WHERE @str LIKE '%'+keywords+'%' ORDER BY num

/*
num    keywords
2    机械
4    程序*/

作者: roy_88   发布时间: 2011-11-07

SQL code
方法貼重

重貼方法

use Tempdb
go
--> --> 
 
if not object_id(N'Tempdb..#T') is null
    drop table #T
Go
Create table #T([num] int,[keywords] nvarchar(2))
Insert #T
select 1,N'中华' union all
select 2,N'机械' union all
select 3,N'学习' union all
select 4,N'程序'
Go
DECLARE @str NVARCHAR(1000)
SET @str='机械应用程序'
Select * from #T WHERE  PATINDEX('%'+keywords+'%',@str)>0

/*
num    keywords
2    机械
4    程序*/

作者: roy_88   发布时间: 2011-11-07

declare @m nvarchar(100)
set @m = N'机械应用程序'
select num from tb where charindex(keywords, @m, 0) > 0

作者: TimZhuFaith   发布时间: 2011-11-07

SQL code

declare @str nvarchar(100)
set @str = '机械应用程序'
select * from tb where charindex(keywords,@str)>0

作者: fredrickhu   发布时间: 2011-11-07

楼上都全了,charindex,patindex,like 

作者: OrchidCat   发布时间: 2011-11-07