不仅仅是一个单词,而是整个表格

时间:2016-12-17 12:03:07

标签: mysql full-text-search

我有两张桌子。

A

user_id | food
--------+-------
paul1   | apple
john2   | banana

food_id | food
--------+-------
food001 | burnt apple
food002 | green banana 

我想从tbl.B找到A.food匹配B.food的food_id 所有A的食物专栏。

但我可以这样做多次。

SELECT b.food_id FROM B as b WHERE match(food) against('apple') 

......我会在其他地方写下food_id。

SELECT b.food_id FROM B as b WHERE match(food) against('banana') 

......等等。

有没有办法写出多个单词? 还是我必须写存储过程?或其他什么?

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是将表A中的所有食物分成一个字符串,然后将表B的列食物与食物串相匹配。

但它必须作为两个单独的查询运行,如Barmar所述,AGAINST参数必须是文字字符串。

SELECT GROUP_CONCAT(DISTINCT food SEPARATOR ' ') AS list FROM A;

SELECT b.food_id FROM B as b WHERE match(food) against(list);
相关问题