2012-08-14 86 views
0

我有一个文本列(VARCHAR(160)),我想用多个关键字搜索表。问题在于,我在任何地方都搜索了答案,我不想使用与该列中该行匹配的关键字来更新另一列。MySQL与多个关键字全文搜索

这是基本的代码:
$sql = "SELECT * FROM table WHERE MATCH (column) AGAINST ('"A1" "A2 "A3" "B1" "B2" "etc."' IN BOOLEAN MODE)";

这工作在phpMyAdmin(关键字实际上是长于4个字符),但下一步是,当从​​“列”行中的字与匹配使用例如1个或多个关键字(例如A1,B1,C4)更新另一列(例如关键字)的AGAINST关键字以及具有TRUE或1的另一列,所以我知道该行具有多个匹配关键字或0时只有一个匹配(例如A1)。

我如何做到这一点?

要clearify:我有多个关键字和我wan't知道关键字对应于一定的文字。我希望这些关键字与不同列中的文本相匹配。这可以是一个关键字,也可以是多个(例如A1,B3,C2)。因此,我需要额外的第二列,它可以是true或false(1,0),分别对应多个关键字匹配项或单个匹配项。

回答

0

根据(对于“多个关键字搜索”):https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html#function_match

SELECT * FROM `table` WHERE MATCH (column) AGAINST ('+kw1 +kw2 +kw3 etc...') 
+0

使用'+ [关键字]'等于AND,实际上不是我问的问题。要清除:我有多个关键字,我不知道哪些关键字对应某个文本。我希望这些关键字与不同列中的文本相匹配。这可以是一个关键字,也可以是多个(例如A1,B3,C2)。因此,我需要额外的第二列,它可以是true或false(1,0),分别对应多个关键字匹配项或单个匹配项。 – TRD07 2012-08-15 07:59:47

+0

对不起我的纯英文,如果你在不同栏目中搜索关键词,那么你可以; ('关键字')匹配(col1,col2,col3等)。记住,你需要定义一个'FULLTEXT'索引,它包含哪些列将被搜索(用在“match(col1,col2 ...)”部分)。 – 2012-08-15 08:53:40

+0

该列被定义为FULLTEXT,它是一个包含多行的单列。我只是不想每行(有一列)检查关键字,特别是WHICH关键字匹配。 – TRD07 2012-08-15 15:54:31