全文搜索MySQL

时间:2015-04-25 07:19:38

标签: php mysql full-text-search

我知道如何使用'全文搜索MySQL'。我想知道的是如何搜索文字的单词。例如: - 我们在mysql中有三条记录,如下所示

1。)这是程序员的地方 2.)人们前往旅游目的地 3.)程序员访问此地点以进行编码。

现在当用户搜索“程序员的地方”

以下应为输出


它应该以任何顺序输出包含句子中所有单词的行

1.)这是程序员的地方 2。)程序员访问此地点网站以进行编码。

谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

MySQL有MATCH..AGAINST用于全文搜索。请尝试以下方法,

SELECT * FROM <table> WHERE MATCH(<column>) AGAINST('+place +for +programmers' IN BOOLEAN MODE)

+ +基本上意味着AND(你可以使用 - 用于OR)

https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html

答案 1 :(得分:0)

  1. 在使用全文搜索之前,请对列进行索引

    ALTER TABLE <table> ADD FULLTEXT(column);
    
  2. 验证它已经是全文

    SELECT 
        index_name, group_concat(column_name) as columns
    FROM 
        information_Schema.STATISTICS 
    WHERE 
        table_schema = 'your_db_name' 
        AND table_name = 'table_name'
        AND index_type = 'FULLTEXT'
    GROUP BY 
        index_name;
    
  3. 然后使用以下SQL

    SELECT * 
    FROM <table>
    WHERE MATCH(<column>) AGAINST('+place +for +programmers' IN BOOLEAN MODE)