我有一个用户需要使用通配符搜索的数据库。例如,用户需要按3011 *或201 *开头的票据搜索的订单号。由于票号有许多不同的号码,因此需要按参数构建。我知道我必须使用LIKE,如果搜索始终以相同的数字开头,我知道如何使用LIKE编写查询,但我不知道如何使用参数为用户输入编写它。
例如:
ITEM ORDER_NO
Chair Order 3011134
Table Order A230445
Tile Order 1032234
因此,当用户输入搜索以* 3011开头的订单时,将弹出主席顺序。
我知道如何搜索完全匹配但不能搜索通配符
我对此做了一些研究,但没有使用参数。任何帮助或指导将不胜感激。
答案 0 :(得分:3)
请查看以下内容:SQL Wildcards
通常在SQL中,您将执行以下操作:
declare @Search varchar(20);
set @Search = '3011';
select *
from TableName
where FieldName like '%' + @Search + '%';
这使您可以搜索在您正在查看的字段中间盯着,结束并具有搜索文本的内容。
注意SQL注入。(Alwasy验证用户输入。)
答案 1 :(得分:2)
SELECT item, order_no
FROM 'your table'
WHERE order_no
LIKE '3011%'
带有LIKE的%通配符将返回order_no以3011开头的所有行 - 因此,从您的表中,上面的查询将返回主席顺序 - 3011134