0

mysql 查询出现问题。我使用全文搜索。

我尝试在我的照片表中找到完全匹配的内容,但出现了问题。

假设我有一张照片描述,例如“Reodor Hansen 遇到 mysql 问题”

如果我随后搜索名为 Reodor Mysql 的用户,则可以看到标记 Reodor Hansen 的图片。

有没有获得完全匹配的选项?我现在谈论像''和“”这样的引号,但他们在这里没有帮助我。

问题是我不会在搜索 Reodor Mysql 时看到 Reodor Hansens 照片。

这是我使用的查询

SELECT * FROM _photos WHERE MATCH (description) AGAINST ('Reodor Mysql' IN BOOLEAN MODE)

更远。知道如何更进一步吗?所以我在搜索框中可以写

“Reodor Mysql 的所有图片”或“显示 Reodor Mysql 上传的最后 10 张图片”

搜索对此有何回应?

4

2 回答 2

1

如果你想找到一个准确的短语,你可以使用双引号。像这样

SELECT * FROM _photos WHERE MATCH (description) 
                  AGAINST ( '"Reodor Mysql"' IN BOOLEAN MODE);

如果您只想要最后 10 张图片,您可以在查询中添加 LIMIT。像这样的东西

SELECT * FROM _photos WHERE MATCH (description) 
                  AGAINST ( '"Reodor Mysql"' IN BOOLEAN MODE) 
                  ORDER BY uploaded_date DESC 
                  LIMIT 10;
于 2013-04-04T14:30:59.523 回答
0

如果您想要完全匹配,Reodor Mysql则必须使用LIKE 运算符

SELECT * FROM _photos WHERE description LIKE '%Reodor Mysql%'
于 2013-04-04T14:05:00.830 回答