【问题标题】:phpmyadmin sql apostrophe not working [duplicate]phpmyadmin sql撇号不起作用[重复]
【发布时间】:2012-06-22 12:11:55
【问题描述】:

大家好,希望你们能帮帮我,

不确定我是否一直有这个问题,或者它是否是新问题,在 phpmyadmin 的 sql 选项卡中,它识别的撇号与我输入的不同,例如,

当我输入时,它是

SELECT * FROM 'table'

这给了我一个错误,所以我必须喜欢复制/粘贴一些预建查询的引号,使其看起来像

SELECT * FROM `table`

看看撇号有什么不同?有什么办法可以解决这个问题?

另外,我在网上看到了很多查询,我认为即使是我从 php 调用的查询也不需要表名带有撇号。但是在phpmyadmin中编写时,我可以在不带撇号的表名的情况下进行查询?

提前致谢。

【问题讨论】:

  • 标签顶部的键盘中没有`?
  • 我不明白为什么很多人将表名保留为TABLE??
  • @islandmyth 有不同的键盘布局。 ;-)
  • @FahimParkar 可能只是一个例子。
  • @Gnarfoz :) 如果他幸运的话,它应该在那里。

标签: mysql phpmyadmin


【解决方案1】:

在 MYSQL 中,table 是保留关键字。如果要在查询中使用mysql中的保留关键字,则必须将它们括在反引号(`)中。

由于table 是保留关键字,您查询应该是

SELECT * FROM `table`

关于单引号('),在mysql中,表示字符串值。

SELECT *, 'table' FROM `table`;

Demo

【讨论】:

  • +1 用于 sqlfiddle 中的演示
  • @barts : sqlfiddle 是我现在最好的朋友。我从不在我的 PC 机器上测试任何 mysql 查询。并且很好地演示我们编写的内容,以便 OP 尤其是其他人可以看到相应查询的输出如何......
  • 我到现在都不知道这个。我只是新的 jsfiddle,但很高兴知道我很快就会进入一个 php/mysql 项目......
  • 谢谢,我为此发疯了一个多小时:/....
  • 没问题。乐于助人...
【解决方案2】:

只有在表名与保留字冲突时才需要引用表名。

还有:

` = Grave accent, or (because someone needed to invent a word) backtick
' = Apostrophe, or straight single quote

【讨论】:

    【解决方案3】:

    表名不需要撇号。

    【讨论】:

      【解决方案4】:

      如果您的表/字段名称是保留字,则应使用 `,例如:

      SELECT `distinct`, myfields FROM mytable
      

      注意 distinct 是一个 sql 命令,所以你需要把 `.

      SELECT * FROM `table`
      

      table 这里应该在`里面。

      【讨论】:

        【解决方案5】:

        有两个不同的字符,反引号和单引号。表名和列名可以用反引号括起来,字符串可以用引号括起来。没有什么可以修复的:D

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-29
          • 2017-09-14
          • 2017-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多