【问题标题】:Simple SELECT SQL statement not working简单的 SELECT SQL 语句不起作用
【发布时间】:2016-11-17 17:18:28
【问题描述】:
SELECT user FROM members WHERE admin=1;

SELECT user FROM members WHERE id=1;

第一个查询不起作用,因为我的语法有错误。第二个有效,但它们实际上是相同的。 'admin' 和 'id' 都是 INT(11),但 'id' 是主键并设置为自动递增。这里有什么问题?

我收到的错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“admin=1”附近使用正确的语法

【问题讨论】:

  • 显示数据库表
  • @JonathonOgden admin 列的数据类型是 INT。这是确切的错误消息:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“admin=1”附近使用正确的语法
  • 您需要为此发布 PHP,因为您是这样标记的。您的错误不支持您在 cmets 中发布的内容。那,或查看下面发布的答案。
  • 对不起,但我对我不知道/看不到的东西无能为力。再次,询问下面给你答案的人。评论会不断增长,直到我们抓住问题的核心并失去很多时间;不仅是我的,还有你的。我祝你一切顺利,真的。在这样的问题上,我已经通过铃声太多次了,我们/我在这些问题上询问与 php 的相关性等。不要为此感到冒犯,我只是说实话。
  • 所以,为了帮助你解决这个问题并证明我不是那么坏的人,SELECT user FROM members WHERE group=1; 这个词 group 要么需要重命名为保留字以外的东西,要么使用像 ` 这样在它周围滴答作响 - 不要与像 ' 这样的常规引号混淆,这是行不通的;使用记号`

标签: mysql sql select


【解决方案1】:

当您使用关键字保留字时,不要忘记添加引号或括号。

SELECT [user] FROM members WHERE [admin]=1;

SELECT [user] FROM members WHERE id=1;

【讨论】:

  • 根据他们在上面留下的评论,他们使用的是 MySQL 而不是 MSSQL“对应于正确语法的 MySQL 服务器版本”
  • “当你使用关键字或保留字时” - 在 MySQL 或 MSSQL 中,这些甚至不是关键字或保留字。
  • 查看SQL保留字他显然使用了一些框架。
  • 我在user 上得到纠正。在 MySQL 中,它是一个关键字 yes,但不是保留 dev.mysql.com/doc/refman/5.5/en/keywords.html,因此不需要采取进一步的行动。旁边没有(R)
  • Drupal 不是数据库。 “MSSQL 管理员”??? @Deadsheep39 到底是什么——你到处都是,你上面的语法对于 MySQL 来说是完全错误的,这个问题就是关于这个的。
【解决方案2】:

我为大家的困惑道歉,我的错。我这样做了,它有效。

SELECT user FROM members WHERE members.group=2;

【讨论】:

  • 这行得通,因为您选择了database.column 语法,该语法在 MySQL 中完全有效,其中 group(作为 MySQL 保留字)不需要勾选。
  • 但是,这个答案与我必须回滚到以前版本的原始问题不匹配。你应该只是删除了这个问题。
  • @Fred-ii- 我试图编辑问题。我不想删除它,但如果你认为这是最好的,我会的。
  • 我认为你应该这样做,因为它只会让其他人感到困惑。您最初使用 2 行代码发布的内容并且没有 php 来支持该问题(我在编辑中删除了标签),使问题不清楚,因此被投票关闭。每个人都需要清楚一切;-)
  • 您知道您可以向版主举报以请求删除该问题。由于给出的答案,您可能没有删除它。将您的问题标记给模组很可能会解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多