Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menggunakan Pertanyaan LIKE dengan betul dengan Pemacu pq Go dan PostgreSQL?

Bagaimana untuk Menggunakan Pertanyaan LIKE dengan betul dengan Pemacu pq Go dan PostgreSQL?

Linda Hamilton
Lepaskan: 2024-12-12 10:49:18
asal
590 orang telah melayarinya

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

Go PostgreSQL LIKE Query Syntax

Apabila bekerja dengan PostgreSQL dan pemacu pq Go, anda mungkin menghadapi mesej ralat berkenaan sintaks semasa melaksanakan pertanyaan LIKE. Mari kita terokai isu ini dan berikan penyelesaian.

Pertanyaan dalam kod yang disediakan ialah:

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
Salin selepas log masuk

Melaksanakan pertanyaan ini secara langsung dalam PostgreSQL berfungsi, tetapi dalam Go, ia menimbulkan ralat:

pq: ralat sintaks pada atau berhampiran "%"

Isunya terletak pada sintaks yang salah untuk operator LIKE. Pemegang tempat hendaklah disertakan dalam petikan tunggal:

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
Salin selepas log masuk

Menggunakan petikan tunggal memastikan pemegang tempat dianggap sebagai rentetan literal dan bukannya sebahagian daripada pertanyaan itu sendiri.

Untuk mengelakkan isu sintaks selanjutnya , pertimbangkan untuk menggunakan ruang letak bernama dan bukannya pemegang tempat kedudukan:

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})
Salin selepas log masuk

Menggunakan ruang letak bernama meningkatkan kebolehbacaan kod dan mengurangkan risiko ralat sintaks.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Pertanyaan LIKE dengan betul dengan Pemacu pq Go dan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan