繁体   English   中英

编写SQL查询以使用通配符进行搜索

[英]Write sql query to search using wildcard

我有一个用户需要使用通配符搜索的数据库。 例如,用户需要按3011 *或201 *开头的票证搜索订单号列。 由于票证号有许多不同的号码,因此需要通过参数来构建。 我知道我必须使用LIKE,并且如果搜索始终始终以相同的数字开头,那么我知道如何使用LIKE编写查询,但是我不知道如何使用用户输入的参数来编写查询。

例如:

ITEM                ORDER_NO
Chair Order         3011134
Table Order         A230445
Tile Order          1032234

因此,当用户输入以* 3011开头的订单搜索时,会弹出主席订单。

我知道如何搜寻完全比对,但不搜寻通配符

我对此进行了一些研究,但没有使用参数。 任何帮助或指导将不胜感激。

看一下以下内容: SQL通配符

通常,在SQL中,您将执行以下操作:

declare @Search varchar(20);
set @Search = '3011';

select * 
from TableName
where FieldName like '%' + @Search + '%';

这使您可以搜索所要查找的内容,以所要查找的内容结尾,中间有搜索文本的地方。

请注意SQL注入。(可以验证用户输入。)

SELECT item, order_no
FROM 'your table'
WHERE order_no
LIKE '3011%'

带有LIKE的%通配符将返回order_no以3011开头的所有行-因此从表中上述查询将返回Chair Order-3011134

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM