Utilisation du caractère générique LIKE avec des instructions préparées dans les requêtes MySQL
Dans les requêtes de base de données MySQL, l'opérateur LIKE permet des recherches basées sur des modèles. Lorsque vous utilisez des instructions préparées pour exécuter de telles requêtes, il est essentiel d'incorporer correctement le caractère générique LIKE.
Une exigence courante consiste à effectuer une recherche de correspondance de préfixe. Pour y parvenir, le mot-clé % doit être ajouté au terme de recherche. Cependant, lors de l'utilisation d'instructions préparées, il est incorrect de concaténer le caractère générique directement à la valeur du paramètre.
Au lieu de cela, définissez la valeur elle-même dans la requête d'instruction préparée. Pour une correspondance de préfixe, modifiez le terme de recherche comme suit :
notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Le mot-clé ESCAPE indique le caractère d'échappement utilisé pour échapper aux caractères spéciaux dans le caractère générique. Par défaut, il s'agit d'une barre oblique inverse (), mais elle peut être remplacée par n'importe quel caractère.
De même, pour une correspondance de suffixe, utilisez ce qui suit :
pstmt.setString(1, "%" + notes);
Et pour une correspondance globale match :
pstmt.setString(1, "%" + notes + "%");
En définissant le caractère générique dans le terme de recherche, l'opérateur LIKE peut être utilisé efficacement avec des instructions préparées pour effectuer diverses recherches basées sur des modèles dans les bases de données MySQL.
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!