当前位置:首页 » 编程语言 » sql存储实现模糊查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql存储实现模糊查询

发布时间: 2022-05-18 22:11:45

A. sql模糊查询

SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:
1、LIKE'Mc%'
将搜索以字母
Mc
开头的所有字符串(如
McBadden)。
2、LIKE'%inger'
将搜索以字母
inger
结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%'
将搜索在任何位置包含字母
en
的所有字符串(如
Bennet、Green、McBadden)。
4、LIKE'_heryl'
将搜索以字母
heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson

Karson(如
Carson)。
6、LIKE'[M-Z]inger'
将搜索以字符串
inger
结尾、以从
M

Z
的任何单个字母开头的所有名称(如
Ringer)。
7、LIKE'M[^c]%'
将搜索以字母
M
开头,并且第二个字母不是
c
的所有名称(如MacFeather)。
-------------------------------------------------

面这句查询字符串是我以前写的,根据变量
zipcode_key
在邮政编码表
zipcode
中查询对应的数据,这句是判断变量
zipcode_key
为非数字时的查询语句,用
%
来匹配任意长度的字符串,从表中地址、市、省三列中查询包含关键字的所有数据项,并按省、市、地址排序。这个例子比较简单,只要你理解了方法就可以写出更
复杂的查询语句。
sql
=
"select
*
from
zipcode
where
(address
like'%"
&
zipcode_key
&
"%')
or
(city
like'%"
&
zipcode_key
&
"%')
or
(province
like'%"
&
zipcode_key
&
"%')
order
by
province,city,address
存储过程中使用模糊查询的例子:
SELECT
*
FROM
Questions
where
QTitle
like
'
%
[
'+
@KeyWord
+'
]
%
'
and
IsFinish
=
@IsFinsih
语句中成对的方括号
是书写格式的关键。

B. sql如何实现多条件模糊查询

这个很简单啊

C. SQL数据库怎么实现模糊查询

实现的方法和详细的操作步骤如下:

1、第一步,按“Ctrl + N”创建一个SQL查询,如下图所示,然后进入下一步。

D. 用sql怎样实现模糊查询(delphi中)

selcet
字段
from
表名
where 字段
like
'%关键字%'实现模糊萌芽,与delphi时没有关系的.只与sql有关:具体可以参考一下sql语句的select:
%
在这里就是所有的意思,也就是说,只要包含关键字的所有记载都可以查出来.
查看原帖>>

E. 有关SQL存储过程变量模糊查询

小菜一叠啦^_^

DECLARE @CaseID varchar(256)
SET @CaseID = '125'
SELECT * FROM [tb_tableName] WHERE 字段ID LIKE '%['+@CaseID+']%'

上面这个正则查询就可以满足你的要求呀

DECLARE @CaseID varchar(256)
SET @CaseID = '19999'
SELECT * FROM [tb_aTemp] WHERE 字段ID LIKE '%['+@CaseID+']%'

TO:我用一个变量在SQL存储过程中可以返回一个结果.现在是想通过执行存储过程一次性返回多个结果,请问变量该怎么定义?

RE:

CREATE PROCEDURE SP_tableName(
@CaseID NVARCHAR(50)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE INT @Identity
SET @Identity = 0
INSERT INTO [tb_tableName] (CaseID)VALUES(@CaseID)
SET @Identity = SCOPE_IDENTITY()

IF (@Identity)>0
BEGIN
SELECT * FROM [tb_tableName] --这里根据你的查询条件,返回的多个需要的得到的字段
END
SET NOCOUNT OFF
END
GO

-- 程序调用的时候用 DataSet 来获得多个你需要的字段值,如果 DataSet 返回 0 或者抛出异常则插入数据失败

-- 带返回值的

CREATE PROCEDURE SP_tableName(
@CaseID NVARCHAR(50),
@Identity INT OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [tb_tableName] (CaseID)VALUES(@CaseID)
SET @Identity = SCOPE_IDENTITY()

IF (@Identity)>0
BEGIN
SELECT * FROM [tb_tableName] --这里根据你的查询条件,返回的多个需要的得到的字段
END
SET NOCOUNT OFF
RETURN @Identity
END
GO

-- 程序调用的时候用 DataSet 来获得多个你需要的字段值, 并可获得刚插入的自动编号输出参数
-- 如果 DataSet 返回 0 ,或者 @Identity 返回0, 或者 DataSet 抛出异常则插入数据失败

首先你要明白模糊查询和精确查询的概念,试想网络,GOOGLE的技术力量那么专业强大,其模糊查询的结果不同样也存在很多很多的冗余数据吗

CaseID like '%['+@CaseID+']%' 结果当然是贪婪模式

当然,你也可以采用如下方法使其尽可能的接近目标匹配:

%
_
[]
[^]
等等...........

如果精确查询,必须

CaseID=@CaseID

或者

CaseID IN (@CaseID)

在模糊查询的情况下,解决重复数据的唯一方法就是再增加一个(或N个)查询条件

F. sql存储过程中,模糊查询的写法

ALTER PROCEDURE [dbo].[pro_Search_keys]
@keys nvarchar(max)
AS
BEGIN
SELECT*
FROM text_Text
where Title like ‘%’+@keys+‘%’
END

G. sql 模糊查找

SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:
1、LIKE'Mc%'
将搜索以字母
Mc
开头的所有字符串(如
McBadden)。
2、LIKE'%inger'
将搜索以字母
inger
结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%'
将搜索在任何位置包含字母
en
的所有字符串(如
Bennet、Green、McBadden)。
4、LIKE'_heryl'
将搜索以字母
heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson

Karson(如
Carson)。
6、LIKE'[M-Z]inger'
将搜索以字符串
inger
结尾、以从
M

Z
的任何单个字母开头的所有名称(如
Ringer)。
7、LIKE'M[^c]%'
将搜索以字母
M
开头,并且第二个字母不是
c
的所有名称(如MacFeather)。
-------------------------------------------------
呵呵,要完整的例句啊。下面这句查询字符串是我以前写的,根据变量
zipcode_key
在邮政编码表
zipcode
中查询对应的数据,这句是判断变量
zipcode_key
为非数字时的查询语句,用
%
来匹配任意长度的字符串,从表中地址、市、省三列中查询包含关键字的所有数据项,并按省、市、地址排序。这个例子比较简单,只要你理解了方法就可以写出更复杂的查询语句。
sql
=
"select
*
from
zipcode
where
(address
like'%"
&
zipcode_key
&
"%')
or
(city
like'%"
&
zipcode_key
&
"%')
or
(province
like'%"
&
zipcode_key
&
"%')
order
by
province,city,address"

H. SQL中如何进行模糊查询

CHARINDEX、RIGHT、LEFT
重点说下charindex
返回字符串中指定表达式的起始位置。
语法
CHARINDEX
(
expression1
,
expression2
[
,
start_location
]
)
参数
expression1
一个表达式,其中包含要寻找的字符的次序。expression1
是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2
属于字符串数据类型分类。
start_location

expression2
中搜索
expression1
时的起始字符位置。如果没有给定
start_location,而是一个负数或零,则将从
expression2
的起始位置开始搜索。
返回类型
int
注释
如果
expression1

expression2
之一属于
Unicode
数据类型(
nvarchar

nchar
)而另一个不属于,则将另一个转换为
Unicode
数据类型。
如果
expression1

expression2
之一为
NULL
值,则当数据库兼容级别为
70
或更大时,CHARINDEX
返回
NULL
值。当数据库兼容级别为
65
或更小时,CHARINDEX
仅在
expression1

expression2
都为
NULL
时返回
NULL
值。
如果在
expression2
内没有找到
expression1,则
CHARINDEX
返回
0。