Requêtes génériques dans les instructions préparées avec LIKE
Lors de l'utilisation d'instructions préparées pour les requêtes de base de données, la mise en œuvre d'une fonctionnalité de recherche avec des mots-clés nécessite souvent l'utilisation de l'opérateur LIKE. Ce guide fournit une solution complète sur la façon d'y parvenir avec des instructions préparées.
Pour utiliser l'opérateur LIKE avec des instructions préparées, vous pouvez ajouter le symbole générique (%) au terme de recherche dans la valeur fournie à l'instruction préparée. déclaration, telle que :
String notes = "keyword%"; PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ?"); pstmt.setString(1, notes); ResultSet rs = pstmt.executeQuery();
En définissant la valeur avec le caractère générique ajouté, vous activez une requête qui correspond à tous les enregistrements où la colonne « notes » contient le mot-clé d'entrée en tant que sous-chaîne.
Cependant, certains caractères ont des significations particulières en SQL, notamment %, !, [, _ et ]. Pour garantir une gestion correcte de ces caractères, ils doivent être échappés à l'aide de la clause ESCAPE dans l'instruction préparée. Par exemple :
String notes = "keyword%" .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
En remplaçant ces caractères par leurs versions d'échappement, l'instruction préparée interprétera correctement le caractère générique et fera correspondre les enregistrements en conséquence.
En fonction de vos besoins de recherche, vous pouvez ajuster le placement du caractère générique pour réaliser différents scénarios de correspondance :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!