我正在尝试运行此查询:
SELECT wins FROM players WHERE auth = '[U:1:123456789]' LIMIT 1;
但我收到以下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 0, 25' at line 1
但是,当我删除 LIMIT 1
时,它就可以工作了。
如果我将查询更改为如下所示,它也可以工作:
SELECT wins FROM players WHERE auth = '[123456789]' LIMIT 1;
我很困惑,我做错了什么?看起来冒号只会破坏查询。
编辑:创建表
CREATE TABLE `players` (
`auth` varchar(32) NOT NULL,
`name` varchar(32) NOT NULL DEFAULT '< blank >',
`wins` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`auth`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
最佳答案
三个四个选项(从最有可能的开始):
0) 您的 SQL 数据库版本或 PHPMyAdmin 版本非常非常过时,应该尽快更新。
1) 您正在 PHP PDO 接口(interface)上运行 SQL,该接口(interface)使用冒号来标记输入变量。 See here .
2) MariaDb 使用冒号作为特殊字符,需要对其进行正确转义。
3) 不知何故,当不需要一个限制时,您有两个限制(正如 Tadman 所说,PhpMyAdmin 或您自己的 PHP 接口(interface)正在添加一个限制)。
关于mysql - 错误接近 LIMIT 但仅当我使用冒号时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43943263/