好吧,我遇到的问题主要是由于数据库结构不良引起的。我正在为一家代码非常混乱且表格非常大的公司编写此代码,因此我认为这不是修复结构的选择。
无论如何,我的问题是我试图以某种方式对字符串中不会单独存在的值进行分组......他们正在存储用逗号分隔的值......所以它就像
field: "category" value: 'var1, var2, var3'
我将使用以下查询进行搜索:
SELECT name, category
FROM companies
WHERE (MATCH(name, category) AGAINST ('$search' IN BOOLEAN MODE)
OR category LIKE '$search%')
它将与例如 var2 匹配(但它不限于 3 个变量,可以是单独的或更多),我会在 PHP 中手动拆分它,没问题。虽然我不会得到足够的匹配,但我希望通过不同的搜索获得例如 10 个匹配。更具体地说,我正在制作一个自动建议功能,这意味着例如我想将“moto%”与摩托车、单独的电机或其他任何东西相匹配,但我一直得到相同的值,就像会有几个 100结果包含“摩托车”,我不知道如何过滤它们,因为由于数据库结构不好,我无法使用 GROUP BY...
我发现了这个:T-SQL - GROUP BY with LIKE - 这可能吗? 它似乎是一个解决方案,但据我尝试,我无法让它与我想要的一起工作。
所以我想知道有哪些解决方案......如果绝对没有办法解决这个问题,我可能不得不修复数据库结构(但这真的必须是最后一个选择)