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

Comment utiliser correctement les requêtes LIKE avec le pilote pq dans Go et PostgreSQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 09:01:09743parcourir

How to Correctly Use LIKE Queries with pq Driver in Go and PostgreSQL?

Comprendre la syntaxe des requêtes LIKE dans Go avec PostreSQL

Lorsque vous travaillez avec Go et PostreSQL à l'aide du pilote pq, vous pouvez rencontrer des erreurs de syntaxe lors de l'exécution COMME les requêtes. Ce problème provient du caractère % utilisé pour représenter des modèles similaires.

Problème :

Vous rencontrez une erreur de syntaxe lors de l'exécution de la requête suivante :

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

Solution :

Pour résoudre cette erreur de syntaxe, vous devez joindre le Modèle LIKE entre guillemets simples :

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;

Dans cette requête révisée, nous encadrons le modèle similaire %$1% entre guillemets simples pour empêcher le pilote d'interpréter le caractère % comme un caractère générique pour les paramètres.

Code Go mis à jour :

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`

Avec ce correctif, la requête pourra s'exécuter avec succès sans rencontrer l'erreur de syntaxe.

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