完全正确的 SQL 语法的语法错误

Posted

技术标签:

【中文标题】完全正确的 SQL 语法的语法错误【英文标题】:Syntax error on completely correct SQL syntax 【发布时间】:2016-03-15 15:16:00 【问题描述】:

我正在尝试在 phpmyadmin 上进行简单的全文搜索

SELECT * FROM `productmeta` 
WHERE MATCH(`pn`,`field`,`value`) AGAINST('capaci*' IN BOOLEAN MODE);

表结构

| pn  | field               | value    |
| 9281| desc                | capacitor|
| 9282| number of capacitors| 7        |
| 9283| voltage             | 75w      |

错误

无法识别的关键字

意外的令牌

规格

服务器:通过 TCP/IP 的本地主机 服务器类型:MariaDB 服务器版本:10.0.17-MariaDB - mariadb.org 二进制分发版 协议版本:10 phpMyAdmin:4.5.2 数据库引擎:innoDB

我做错了吗?

【问题讨论】:

【参考方案1】:

只能对 char、varchar 或 text 类型的字段进行全文搜索,请检查您的情况。尝试在关键字上使用双引号。

【讨论】:

都是 varchars 和全文索引,我也尝试过双引号关键字,还是一样 您是否尝试过直接在终端上运行查询(而不是通过 phpmyadmin),但您怀疑这是问题所在。在设置具有相同字段的测试表后,我成功执行了您的查询。 是的,我在 php 脚本上尝试过,但没有给我任何结果【参考方案2】:

这似乎是 phpMyAdmin 解析器的错误。已在https://github.com/phpmyadmin/phpmyadmin/issues/11742 报告,并将在那里进行更新/讨论。

【讨论】:

以上是关于完全正确的 SQL 语法的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

语法错误或访问冲突:1064 您的 SQL 语法有错误;对应于正确语法的 MySQL 服务器版本

SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用

SQL 中的 Pivot 语法错误,为啥我得到不正确的结果?

SQL错误关键字'user'附近的语法不正确[重复]

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 '0 附近使用的正确语法