оператор выбора SQL, дающий ошибку столбца - PullRequest
0 голосов
/ 31 марта 2011

Когда я использую

SELECT order_id from `order` where `order_id`=U687678601

я получаю ошибку

ОШИБКА 1054: неизвестный столбец 'U687678601' в предложении where

но когда я наберу

SELECT order_id from`order` where `order_id`='U687678601'

работает нормально ..

Я использую mysql.

Я знаю, что это вопрос новичка, но кто-нибудь может объяснить, почему это происходит, и могу ли я добавить кавычки программно, и это хорошая идея, чтобы добавить цитату через код

Спасибо

Ответы [ 3 ]

1 голос
/ 31 марта 2011

'U687678601' - это строка (не число), а не поле в вашей таблице; так что это должно быть в кавычках.

0 голосов
/ 31 марта 2011

Когда мы предоставляем тип строки / varchar для SQL-запроса, мы должны указать его с помощью ''. и для типов без varchar нет необходимости поставлять ''. Вот почему ваш запрос работает нормально, когда вы пишете

SELECT order_id fromorder where order_id='U687678601'

это показывает, что ваш столбец order_id содержит тип varchar. так что теперь вы должны применить следующий синтаксис к SQL-запросу:

SELECT column_name,..... FROM table WHERE column_name = 'varchar_value'

или

SELECT column_name,..... FROM table WHERE column_name = nonvarchar_value.

и также учтите, что ORDER является зарезервированным ключевым словом .. поэтому попробуйте изменить имя таблицы на другое, например, order_table или else ...

0 голосов
/ 31 марта 2011

Order - это ключевое слово reserverd, вы должны использовать другое имя для вашей таблицы.Вы можете заключить имя таблицы в кавычки, например:

SELECT order_id from `order` where order_id=U687678601

А что касается цитирования значений, если значение имеет тип string, вы должны всегда использовать кавычки.Если значением является какой-то числовой тип, вам не нужно это делать, но это не принесет никакого вреда, если заключить практически все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...