2015-08-10 2 views
3

Я пытаюсь выполнить запрос на обновление с вычитанием внутри:SQLite 3 вычесть в запросе обновления дает рядом «-»: ошибка синтаксиса

UPDATE categories_ns 
SET 
nsright = nsright – 10 
WHERE 
    nsright > 9 

И я получаю [Err] 1 - рядом с «-»: синтаксис ошибка.

Не могли бы вы помочь мне понять, почему это происходит?

Спасибо!

+2

'' '' '' '', кстати. Это то, что ваша база данных действительно выводит, скопировано без посредников? –

+0

@ D-side Yep (спасибо большое! – IgorOK

+0

Спасибо за что? Это действительно решило вашу проблему, или это просто «да» на мой вопрос? –

ответ

1

И все же снова у кого-то проблемы с Юникодом, у которого так много похожих символов, а некоторые из них попадают в код случайно.

и - - это разные символы. Первый недействительный минус, последний.

Разница в длинах тире часто нечеткая во многих моноширинных шрифтах. Вы можете просмотреть свой код в немоноширинном, чтобы разница стала очевидной. Но прежде всего, избегайте копирования кода, который может быть не таким, как он выглядит.

Некоторые процессоры документов и веб-сайты там, к примеру:

  • Заменить кавычки с причудливых из них (как ˝)
  • Заменить << и >> с « и »
  • Заменить "минус" конструкции как - с надлежащим тире (, ?)

... все это имеет смысл для прозы или стихотворений, но не для кода.

Смежные вопросы