mysql - 错误接近 LIMIT 但仅当我使用冒号时

标签 mysql mariadb

我正在尝试运行此查询:

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/

相关文章:

mysql - 纬度经度搜索查询不起作用

php - 在mysql中检查数字的功能不起作用

java - 在 Play Framework 2.0.1 中访问 scala 模板内子实体的属性时出现问题

Windows 上的 MariaDB - 尝试启动数据库引擎时出现什么错误?

kubernetes - MariaDB Server 与 MariaDB Galera 集群 HA 复制

php - Join 函数用于将一个表中的字段值与另一表中的字段值进行匹配

php - 具有多种功能的产品的数据库设计

javascript - php/mysql 动态下拉菜单的 AJAX RETURN 帮助

java - Java 中的 MariaDB 动态列集成

mysql - 如何将列的默认值设置为今天的日期?