在我目前的项目中,我有如下表格。
Customer table Task table
+----+----------------+ +----+--------------+-------------+
| id | name | | id | description | customer_id |
+----+----------------+ +----+--------------+-------------+
| 1 | teste client 1 | | 1 | do something | 1 |
+----+----------------+ +----+--------------+-------------+
| 2 | teste client 2 | | 2 | anything | 2 |
+----+----------------+ +----+--------------+-------------+
我想按任务搜索 description
和客户 name
使用一些用户关键字。
select *
from task t
inner join customer c on t.customer_id = c.id
where match(t.description, c.name)
against ('+test*+some*' IN BOOLEAN MODE);
使用前面的查询,我得到以下错误 Error Code: 1210. Incorrect arguments to MATCH
,我知道我不能在同一个匹配中使用不同表中的字段。
但是,如何使用多个匹配得到与上一个查询完全相同的结果呢?
(如果有人有或知道一篇关于这类问题的好文章,请告诉我)
更新
对于提供的查询和数据,请遵循一些导出的结果:
当我搜索时 test
以及 some
结果应该是 teste client 1
当我搜索时 test
以及 client
结果应该是 teste client 1
以及 teste client 2
当我搜索时 any
结果应该是 teste client 2
例如,如果只有一个表同时包含这两个表,那么可以在sqlfiddle中检查预期的结果 name
以及 description
.
1条答案
按热度按时间okxuctiv1#
更新的解决方案sqlfiddle
目前,我认为你所期望的结果逻辑是相互排斥的。请看我上面的评论。