Maison >développement back-end >Golang >Comment utiliser correctement les requêtes LIKE avec le pilote pq de Go pour PostgreSQL ?

Comment utiliser correctement les requêtes LIKE avec le pilote pq de Go pour PostgreSQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-09 10:29:05499parcourir

How to Correctly Use LIKE Queries with Go's pq Driver for PostgreSQL?

Requête Go PostgreSQL LIKE

Lors de l'interrogation d'une base de données PostgreSQL avec le pilote Go pq, il est essentiel de comprendre comment gérer correctement les requêtes LIKE. Un problème qui peut survenir est l'inclusion de signes de pourcentage (%) dans le modèle LIKE, ce qui peut entraîner des erreurs de syntaxe dans Go.

La requête originale fournie dans la question est la suivante :

query := `SELECT p.id, p.name, p.description, p.price, p.image, p.rate
        FROM products AS p
        WHERE LOWER(p.name) LIKE %% ORDER BY p.rate DESC`

Cependant, cette requête échoue avec l'erreur "pq : erreur de syntaxe à ou près de "%" dans Go en raison des signes de pourcentage. Pour résoudre ce problème, il est nécessaire de mettre le modèle similaire (%$1%) dans guillemets simples :

query := `SELECT p.id, p.name, p.description, p.price, p.image, p.rate
        FROM products AS p
        WHERE LOWER(p.name) LIKE '%' ||  || '%'
        ORDER BY p.rate DESC`

L'ajout de guillemets simples indique à PostgreSQL que la valeur après LIKE est une chaîne et qu'elle doit être utilisée comme modèle de recherche en entourant le modèle LIKE avec le double tube (||) opérateur et guillemets simples, la requête est analysée correctement par le pilote pq et la recherche LIKE peut être effectuée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn