使用「like」關鍵字透過預先準備語句實現通配符搜尋
預備語句提供了一種安全有效的方法來執行資料庫查詢。為了實現基於關鍵字的搜尋功能,可以利用「like」關鍵字。要在準備好的語句中使用“like”,關鍵字的通配符部分必須合併到查詢中。
假設我們有這樣的查詢:
PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes like ?");
要執行通配符搜索,我們需要在查詢中指定通配符模式。這是透過在關鍵字值後插入通配符 ('%') 來實現的。例如,如果我們想要執行前綴匹配搜索,我們可以用諸如notes%之類的參數替換問號:
pstmt.setString(1, notes + "%");
或者,我們可以透過附加通配符來使用後綴匹配到關鍵字值的開頭:
pstmt.setString(1, "%" + notes);
對於全域匹配,我們可以將關鍵字值括起來通配符:
pstmt.setString(1, "%" + notes + "%");
需要注意的是,當使用「%」等特殊字元時,它們可能會幹擾準備好的語句。為了防止這種幹擾,我們可以使用轉義字元。例如,在上面的程式碼中,我們引入了轉義字元('!')來防止通配符被解釋為元字元:
PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
這確保了通配符被視為元字元文字字元而不是元字元。
以上是如何使用準備好的語句和「LIKE」關鍵字安全地實作通配符搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!