0

我有一个带有文本列 (VARCHAR(160)) 的表,我想用多个关键字进行搜索。问题是,我到处都在寻找答案,我不想用与该列中该行匹配的关键字来更新另一列。

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

这在 phpmyadmin 中有效(关键字实际上长于 4 个字符)但下一步是当“列”中的一行中的单词与 AGAINST 关键字匹配时,其他列 [s](例如关键字)被更新例如 1 个或多个关键字(例如 A1、B1、C4)和另一列 TRUE 或 1 所以我知道这一行有多个匹配关键字或只有一个匹配项时为 0(例如 A1)。

我该怎么做呢?

澄清:我有多个关键字,我不知道哪些关键字对应于某个文本。我希望这些关键字与不同列中的文本匹配。这可以是一个关键字,也可以是多个关键字(例如 A1、B3、C2)。因此,我想要一个额外的第二列,它是真或假 (1,0),分别对应于多个关键字匹配或一个关键字匹配。

4

1 回答 1

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...')
于 2012-08-14T13:51:51.770 回答