之前程序测试运行的时候一直没有问题,今天突然跳出来错误:

False,Syntax error, unexpected '@', expecting $end

有点措手不及,检查了一下代码,PHP代码应该不可能有问题,那么只能是MySQL了,提示@字符错误,我想到了在全文索引编码时因为考虑到+号比较麻烦,所以都替换成了@符号。而刚好今天把表格式从MyISAM换成了InnoDB,看来两个引擎对全文索引的处理是不太一样的。

网上找了一下解决方案,把搜索语句用双引号“括起来就可以了。

原代码:

$search_pt = "5bqT6YeM 5pu05b@r";
$db->query_data("select nt_id from ai_news_temp where MATCH (n_main_words_fl) AGAINST('".$search_pt."' IN BOOLEAN MODE) limit 10 ");

修改后的代码:

$search_pt = "5bqT6YeM 5pu05b@r";
$db->query_data("select nt_id from ai_news_temp where MATCH (n_main_words_fl) AGAINST('\"".$search_pt."\"' IN BOOLEAN MODE) limit 10 ");

主要是MATCH()AGAINST()语句,本来是AGAINST('abc' IN BOOLEAN MOD),改成 AGAINST('"abc"' IN BOOLEAN MODE),这样就可以了。

全文索引AGAINST语句除了 + - 外,还有一些其它特殊字符也要注意:

  1. @
    此运算符仅适用于InnoDB表。它测试两个或多个单词是否都以单词为单位在指定的距离内开始。在紧邻@distance运算符之前的双引号字符串中指定搜索词,例如,MATCH(col1)AND('“word1 word2 word3”@8'在布尔模式下)
  2. > <
    这两个运算符用于更改单词对分配给行的相关性值的贡献。>运算符增加贡献,<运算符减少贡献。请参见以下列表中的示例。
  3. ( )
    括号将单词分组为子表达式。带圆括号的组可以嵌套。
  4. ~
    前导波浪号充当否定运算符,导致单词对行相关性的贡献为负。这对于标记“噪音”单词很有用。包含这样一个单词的行的评级低于其他单词,但并没有像使用-运算符时那样被完全排除在外。
  5. *
    星号用作截断(或通配符)运算符。与其他运算符不同,它附加在要影响的单词后面。如果单词以*运算符前面的单词开头,则匹配。
  6. "
    包含在双引号(“)中的短语字符仅与键入时包含短语的行匹配。全文引擎将短语拆分为单词,并在FULLTEXT索引中搜索单词。非单词字符不需要完全匹配:短语搜索只要求匹配项包含与短语完全相同的单词,并且顺序相同。例如,“测试短语”匹配“测试,短语”。

PHP MySQL 进行全文索引的时候提示False,Syntax error, unexpected ‘@‘, expecting $end 的错误解决方案相关推荐

  1. Webservice 或者HttpRequest请求的时候提示 “指定的注册表项不存在”错误 解决方案...

    今天又遇到神奇的事情,在使用WebService的时候居然提示"指定的注册表不存在." The specified registry key does not exist. Goo ...

  2. pycharm提示softmax() got an unexpected keyword argument 'axis'错误

    今天帮师弟跑py程序,用的keras,我的环境是pycharm加anaconda(pycharm可以通过指定路径找到anaconda的配的环境,然后pycharm就不用在interpreter里面重新 ...

  3. SHELL syntax error:unexpected end of file 提示错误

    解决方案: 使用下面的命令将文件格式设置为unix格式即可解决上述错误. vi M.txt :set fileformat=unix :wq 参考文档: http://hi.baidu.com/haj ...

  4. 打开Excel文件时出现提示:“向Excel发送命令时出现错误”解决方案

    (1)以管理员身份运行Excel程序. (2)进入到"文件->选项->高级",去掉"常规"中的如下勾选项: 退出后,即可成功打开原本的Excel文件 ...

  5. python中unexpectedtoken怎么解决_linux后台执行./run.py提示python syntax error near unexpected token `('...

    (转) Wp7 list 中列表项多样化的解决方案-Custom DataTemplateSelector 本文转自: http://www.cnblogs.com/sonyye/archive/20 ...

  6. eclipse错误提示:Syntax error on tokens, delete these tokens

    原因是:报错的地方存在中文字符或者符号(包括空格!) 解决:检查有无中文字符/符号,将其改成英文的.或者直接删除报错地方的代码在英文输入法的情况下重新打一遍.

  7. MySQL使用全文索引(fulltext index) 及中文全文索引使用

    全文索引介绍 1.创建全文索引(FullText index) 旧版的MySQL的全文索引只能用在MyISAM表格的char.varchar和text的字段上. 不过新版的MySQL5.6.24上In ...

  8. MySQL 之全文索引

    最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不多,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录. 引入 概念 通过数值比较.范围过滤等就 ...

  9. mysql 使用service mysqld start 提示未识别服务 进入/etc/rc.d/init.d 下面未发现有mysqld解决方法

    mysql 使用service mysqld start 提示未识别服务 进入/etc/rc.d/init.d 下面未发现有mysqld解决方法 参考文章: (1)mysql 使用service my ...

最新文章

  1. struts2学习:配置篇值请求处理元素
  2. Xamarin.IOS中MvvmCross的plugin使用方式
  3. Android教程 -09 数据的持久化存储
  4. 集体奔赴农业战场 互联网巨头对话中国农民丰收节交易会
  5. OpenCASCADE:建立Body
  6. 杭电2013-蟠桃记(C++)
  7. 电脑qq收藏在哪里打开_外贸询盘怎么来?零成本用Linkedin批量开发客户!外贸人收藏...
  8. php html5 案例,35个非常好的HTML5+CSS3实例
  9. H5中新增加的一些标签
  10. java人事考勤打卡小程序源码
  11. mis系统的编写与设计
  12. vscode php格式化插件
  13. 论文那些事—Admix: Enhancing the Transferability of Adversarial Attacks
  14. 网络工程师学习Linux的亲身历程
  15. 黄瓜客户端java_建造者模式
  16. 网上赚钱竞争那么激烈你一定要有自己的绝活!
  17. Java中求集合交集、并集、差集
  18. 腾讯云服务器部署TomCat出现404
  19. linux模拟手机号码,虚拟手机号码接收短信
  20. 【软件测试】测试人我明明测了,生产环境还出问题?又出幺蛾子......

热门文章

  1. 日更一文,今天来点干货!
  2. 【线代】线性方程组:非齐次/齐次方解的个数、系数矩阵的秩、未知数个数的关系?为什么 Ax=0 比 Ax=b 少1个线性无关的解?
  3. 团队多人协作、研发协作、项目管理、敏捷开发协作平台
  4. ios上编译c语言的app_CppCode –适用于IOS的免费C / C ++ IDE和编译器
  5. H1N1猪流感症状及预防
  6. nginx 配置二级域名(阿里云)
  7. next数组两种求法
  8. 【已解决】Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.
  9. 2022-03-02每日刷题打卡
  10. codeforces 584A