MYSQL-语法错误,意外的'@',期望$ end

时间:2019-08-06 17:35:32

标签: mysql sql full-text-search

我正在尝试使用以下SQL语法编写全文搜索

life_row['tracklist'][0]['type_']
  • u.usuario 存储用户ID的字符串值
  • u.nombre 存储用户的全名
  • u.terminos 存储一些串联值以与AGAINST一起使用

示例:

如果用户的ID为'123456'并且全名为'john doe',则MySQL列“ terminos”将包含 id +全名< / em>表示“ 123456 john doe”

注意:有时,用户ID可以是电子邮件,因此,它会带有'@'字符。当 AGAINST 值包含“ @”时,出现此错误:

  

语法错误,意外的'@',期望$ end

非常感谢。

1 个答案:

答案 0 :(得分:1)

将该短语放在单引号字符串内的双引号中。

我在MySQL 5.6上进行了测试:

mysql> SELECT u.usuario, terminos
  FROM usuarios AS u
  WHERE u.cuenta_id = 10 AND
       MATCH (u.terminos) AGAINST ('"jacuna@sgc.gov.co"' IN BOOLEAN MODE);
+---------+------------------------+
| usuario | terminos               |
+---------+------------------------+
|       1 | call jacuna@sgc.gov.co |
+---------+------------------------+

阅读https://dev.mysql.com/doc/refman/8.0/en/fulltext-boolean.html

  

用双引号(“)括起来的短语仅匹配按字面意义包含该短语的行。全文引擎将短语拆分成单词,并在FULLTEXT索引中搜索该单词。非单词字符不需要完全匹配:短语搜索仅要求匹配包含与短语完全相同且顺序相同的单词。例如,“测试短语”与“测试,短语”匹配。