2012-08-14 84 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