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

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

Linda Hamilton
Libérer: 2024-12-12 10:49:18
original
590 Les gens l'ont consulté

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

Syntaxe des requêtes Go PostgreSQL LIKE

Lorsque vous travaillez avec PostgreSQL et le pilote pq de Go, vous pouvez rencontrer des messages d'erreur concernant la syntaxe lors de l'exécution de requêtes LIKE. Explorons le problème et proposons une solution.

La requête dans le code fourni est :

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
Copier après la connexion

L'exécution de cette requête directement dans PostgreSQL fonctionne, mais dans Go, elle génère une erreur :

pq : erreur de syntaxe à ou près de "%"

Le problème réside dans la syntaxe incorrecte pour l'opérateur LIKE. L'espace réservé doit être placé 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
Copier après la connexion

L'utilisation de guillemets simples garantit que l'espace réservé est traité comme une chaîne littérale plutôt que comme une partie de la requête elle-même.

Pour éviter d'autres problèmes de syntaxe. , pensez à utiliser des espaces réservés nommés plutôt que des espaces réservés positionnels :

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

product_rows, err := db.Query(query, map[string]interface{}{"name": name})
Copier après la connexion

L'utilisation d'espaces réservés nommés augmente la lisibilité du code et réduit le risque de syntaxe. erreurs.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal