Синтаксическая ошибка в конце ввода в PostgreSQL

я использовал следующий оператор SQL как в MySQL, так и в PostgreSQL, но он терпит неудачу в 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 ответов


вы не предоставили каких-либо подробностей о языке/среде, но я все равно попробую угадать:

подготовленные операторы MySQL изначально используют ? в качестве заполнителя параметра, но PostgreSQL использует , etc. Попробуйте заменить ? С и посмотреть, работает ли он:

WHERE address = 

сообщения об ошибках в PostgreSQL очень загадочны.

в общем, я обнаружил, что сообщения об ошибках Postgres лучше, чем конкурирующие продукты (ГМ, MySQL и особенно Oracle), но в этом случае вам удалось запутать парсер за пределами здравомыслия. :)


вы используете Go right?

попробуй:

db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)

Попробуйте С @ Symbol его работа для меня.

при использовании ? символ:

Он говорит "Ошибка: 42601: синтаксическая ошибка в конце ввода"

при использовании 1$:

Он говорит "Ошибка: 42P02: нет параметра $1"