要实现按匹配数量排序的FIND_IN_SET
,可以使用MySQL的LENGTH
函数结合ORDER BY
实现排序。以下是一个示例代码:
SELECT column_name
FROM table_name
ORDER BY (LENGTH(REPLACE(column_name, ',', '')) - LENGTH(column_name)) DESC;
在上面的代码中,我们首先使用REPLACE
函数将逗号替换为空字符,然后使用LENGTH
函数计算替换后的字符串的长度。接下来,我们再使用LENGTH
函数计算原始字符串的长度。通过两个长度的差值,我们可以得到匹配数量。最后,使用ORDER BY
按匹配数量降序排序。
请注意,上述代码假设column_name
列的值是逗号分隔的字符串。如果你的需求是按照其他分隔符进行排序,需要将代码中的逗号替换为相应的分隔符。
希望以上解决方法对你有所帮助!