【问题标题】:Syntax error on completely correct SQL syntax完全正确的 SQL 语法的语法错误
【发布时间】: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

我做错了吗?

【问题讨论】:

    标签: sql phpmyadmin full-text-search mariadb


    【解决方案1】:

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

    【讨论】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      相关资源
      最近更新 更多