我正在尝试使用以下SQL语法编写全文搜索:
life_row['tracklist'][0]['type_']
示例:
如果用户的ID为'123456'并且全名为'john doe',则MySQL列“ terminos”将包含 id +全名< / em>表示“ 123456 john doe”
注意:有时,用户ID可以是电子邮件,因此,它会带有'@'字符。当 AGAINST 值包含“ @”时,出现此错误:
语法错误,意外的'@',期望$ end
非常感谢。
答案 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索引中搜索该单词。非单词字符不需要完全匹配:短语搜索仅要求匹配包含与短语完全相同且顺序相同的单词。例如,“测试短语”与“测试,短语”匹配。