2013-04-04 318 views
0

有问题与MySQL查询进行。我使用全文搜索。mysql全文搜索

我尝试在我的照片表中找到精确匹配,但会出现问题。

让我们说我有一个像“Reodor汉森有麻烦的mysql”

如果我再搜索名为Reodor Mysql的,其中Reodor汉森被标记在画面的用户,将会看到一个照片描述。

是否有选项可以获得完全匹配?我现在谈论的是“'和”“,但他们并没有帮助我。

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

下面是查询我使用

SELECT * FROM _photos WHERE MATCH(介绍)AGAINST('Reodor MySQL的IN BOOLEAN MODE)

此外。任何想法我可以如何进一步迈出这一步?所以,我在搜索框中可以写

“Reodor所有MySQL图片”或“告诉我最后的10张图片Reodor Mysql的上传”

和搜索上对此作出回应?

+0

您可以使用这个(我的)PHP库:https://github.com/alexschwarz89/easy-mysqli-fulltext – Alex2php 2016-08-10 20:39:58

回答

1

如果你想找到一个确切的词,你可以使用双引号。就这样

​​

如果你只是想最后的10张图片,你可以一个LIMIT添加到您的查询。事情是这样的

SELECT * FROM _photos WHERE MATCH (description) 
        AGAINST ('"Reodor Mysql"' IN BOOLEAN MODE) 
        ORDER BY uploaded_date DESC 
        LIMIT 10; 
+0

感谢。有效。有关如何解决我的其他问题的任何想法?我怎么能要求看到一个用户最后的X张照片或最后一个用户是在度假 – 2013-04-04 15:09:00

+0

我不知道如何回答你的第二个问题,因为我不知道你的模式和数据如何。为了回答这个问题,我需要更多的信息,例如:你在哪里存储上传日期?你在哪里存储用户的假期? Fulltext只是一个MySQL索引,可让您在文本列上执行更快的查询。 – alexrom7 2013-04-05 02:15:46

0

如果哟想的Reodor Mysql完全匹配,你将不得不使用LIKE operator

SELECT * FROM _photos WHERE description LIKE '%Reodor Mysql%'