簡體   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