首頁 > 資料庫 > mysql教程 > SQL中的LIKE語句可以使用參數進行模式比對嗎?

SQL中的LIKE語句可以使用參數進行模式比對嗎?

Susan Sarandon
發布: 2025-01-05 11:12:40
原創
603 人瀏覽過

Can Parameters Be Used with the LIKE Statement in SQL for Pattern Matching?

如何在 SQL 中使用參數和 LIKE 語句

在 SQL 中,LIKE 語句可讓您在字串中執行模式比對。然而,如果不採取適當的預防措施,使用它可能會導致 SQL 注入攻擊。為了防止此類攻擊,可以採用參數化查詢。

原始問題

為了限制SQL 注入漏洞,使用參數建構了以下查詢:

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
登入後複製

但是,在程式中執行此查詢不會產生任何結果。參數可以這樣使用嗎,還是只適用於以下情況:

SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'
登入後複製

參數可以如預期在 LIKE 語句中使用。原始查詢中的語法不正確。以下是在此場景中使用參數的正確方法:

Dim cmd As New SqlCommand(
    "SELECT * FROM compliance_corner" _
    + " WHERE (body LIKE @query )" _
    + " OR (title LIKE @query)")

cmd.Parameters.Add("@query", "%" & searchString & "%")
登入後複製

此查詢將正確匹配正文或標題欄位中包含搜尋字串的字串。

VB。 NET 注意事項

提供的解決方案對於 VB.NET 在語法上是正確的。但是,實際實作可能會有所不同,具體取決於所使用的特定資料庫提供程序和連接方法。請參閱相應的文件以獲取進一步的指導。

以上是SQL中的LIKE語句可以使用參數進行模式比對嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板