完全正确的 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 服务器版本相对应的手册以获取正确的语法使用