我的排名算法存在问题。
我在MySQL中运行此查询:
SELECT *
FROM table_name
WHERE field_name LIKE "%string_1%" OR field_name LIKE "%string_2%" OR field_name LIKE "%string_3%" OR field_name LIKE "%string_4%"
每个字符串可能出现多次,并且记录中甚至可能存在多于1个字符串。
如何找到结果记录中存在多少以及这些字符串中的哪一个?
答案 0 :(得分:0)
只需添加GROUP BY
和COUNT
SELECT field_name, COUNT(field_name)
FROM table_name
WHERE field_name LIKE "%string_1%"
OR field_name LIKE "%string_2%"
OR field_name LIKE "%string_3%"
OR field_name LIKE "%string_4%"
GROUP BY field_name
您可以使用table_name.*
代替field_name