Простое предложение WHERE для имени столбца 'ID пользователя'? - PullRequest
0 голосов
/ 25 марта 2012

Я не могу выполнить простой запрос выбора с предложением where. Я использую MySQL и у меня есть столбец User ID.

Проблема в том, что имя столбца состоит из двух слов.

select * from user where 'User ID' = "xyz"

Обычный запрос, подобный следующему, работает нормально, как и ожидалось:

select * from user where email = 'xyz'

Как написать условие в столбце User ID?

Ответы [ 4 ]

2 голосов
/ 25 марта 2012

Попробуйте:

SELECT u.* 
FROM   `user` u
WHERE  u.`User ID` = 'xyz';

Но в общем, старайтесь не использовать такие имена столбцов.

Использование обратных кавычек для определения имен таблиц и / или столбцов также полезно, если у вас есть имена, конфликтующие с ключевыми словами MySQL, например, user.

1 голос
/ 02 декабря 2013

Как Джонатан Леффлер указал, если вы находитесь в MS SQL Server, вы можете попробовать:

select * from user where [User ID] = "xyz"

или в MySql PHP Admin:

select * from user where ´User ID´ = "xyz"

Я не уверен насчет MySql, но в SQL Server, даже «логин» или «пользователь», которые являются зарезервированными словами, они нормально работают в запросах. Несмотря на это, я думаю, что лучше не использовать это.

Я надеюсь, что это может помочь вам или другому. Объятия.

Ссылка:
1. Значение квадратных скобок [] в конструкторе таблиц MS-SQL?
2. Когда использовать одинарные, двойные и обратные кавычки в MySQL

1 голос
/ 25 марта 2012

Нет способа переименовать этот столбец?
Вы можете попробовать использовать обратные пометки вокруг имени столбца в вашем запросе:

select * from user where `User ID` = 'xyz';
0 голосов
/ 25 марта 2012

Я думаю, что пользователь является зарезервированным словом ...

Попробуйте:

SELECT *
FROM `user`
WHERE `email` = 'xyz';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...