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

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

Susan Sarandon
Susan Sarandon原創
2025-01-05 11:12:40656瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn