Pep*_*epe 6 mysql concat multiple-columns
我试图找到搜索多个列中出现的单词的最佳方法。当然,一个选项是OR在查询中添加多个's:
SELECT * FROM table WHERE column1 LIKE %term1% OR column2 LIKE %term1% OR......
Run Code Online (Sandbox Code Playgroud)
然而我虽然这使查询很长,特别是当有多个术语时
在我的搜索中,我遇到了CONCATMYSQL 中的函数。这似乎允许我在连接列后进行一次搜索(对吗?):
SELECT * FROM table WHERE CONCAT(column1,column2,....) LIKE %term1% OR CONCAT(column 1,column2,...) LIKE %term2% ....
Run Code Online (Sandbox Code Playgroud)
这具有更易于阅读和维护的优点
因为我还不了解完整的使用方法CONCAT我不知道或者这是一个正确的使用方法。我想知道实现此搜索的正确和最有效的方法是什么。(注意:我还计划按照这个 stackoverflow 问题中的说明对其进行排序:mysql SORT BY amount of unique word matching ,可能在使用这种方法时会出现问题吗?)
编辑:
Maby 解释一下我的最终愿望会更容易:在 php 中,我有一组单词。我希望从我的数据库中选择所有行,其中 1 个单词出现在多个列之一中,然后按相关性对它们进行排序(甚至为某些列增加额外的重要性)。(注意只有几千(少于 5000)行要搜索)