简单查询的SQL错误

时间:2016-07-26 18:15:50

标签: mysql sql-server

我正在构建一个应用程序,但后来了解到我们需要使用sql数据库并且我现在返回这个并且不确定为什么?

  

SQLSTATE [42000]:[Microsoft] [SQL Server的ODBC驱动程序11] [SQL   服务器]关键字“用户”附近的语法不正确。

查询:

SELECT *
FROM User WHERE (username = 'james' OR email = 'james') AND password =
'M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc='

3 个答案:

答案 0 :(得分:2)

确保您正在查询正确的数据库,并且在默认架构中定义了[User]表。否则,您需要在表名之前明确指定架构。

此外,当您使用标识符(列,表或数据库名称)时,请使用括号调整周围的标识符。它使查询更具可读性:

SELECT *
FROM [dbo].[User] WHERE ([username] = 'james' OR [email] = 'james') AND [password] =
'M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc='

答案 1 :(得分:0)

您可能使用了错误的数据库。在连接字符串中指定数据库名称,或者完全限定表名。

此外,“用户”是reserved word。将您的查询更改为:

SELECT * FROM yourDatabaseName.dbo.[User] WHERE (username = 'james' OR email = 'james') AND password = 'M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc='

答案 2 :(得分:0)

尝试此选择用户,不确定但尝试一下

      SELECT user 
      WHERE username = 'james' OR email = 'james'
      AND password ='M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc='