我在MySQL和PostgreSQL中都使用了下一條SQL語句,但是在PostgreSQL中卻失敗了db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)出現此錯誤:pq: F:"scan.l" M:"syntax error at end of input" S:"ERROR" C:"42601" P:"50" R:"scanner_yyerror" L:"993"有什么問題?PostgreSQL中的錯誤消息非常含糊。
3 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
您尚未提供有關語言/環境的任何詳細信息,但是無論如何我都會嘗試一個大膽的猜測:
MySQL的預處理語句本機?
用作參數占位符,而PostgreSQL使用$1
,$2
等等。嘗試替換為?
,$1
看看它是否有效:
WHERE address = $1
PostgreSQL中的錯誤消息非常含糊。
總的來說,我發現Postgres錯誤消息比競爭產品(ahem,MySQL尤其是Oracle)要好,但是在這種情況下,您已經使解析器混亂不堪。:)

楊魅力
TA貢獻1811條經驗 獲得超6個贊
您正在使用Go嗎?
嘗試:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = $1`, email)

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
就我而言,這是由于使用了-行注釋,其中負責與數據庫進行交互的程序在我的查詢的多行中均讀取為一條大行。這意味著該行注釋破壞了查詢的其余部分。解決方法是改用/ *塊注釋* /。
- 3 回答
- 0 關注
- 899 瀏覽
添加回答
舉報
0/150
提交
取消