最近在做开发一块业务,碰到了一些棘手的问题,需要排序,但是系统中却没有成熟的模型设计,只能用SQL去拉各个表的数据进行组合,这样子看来也能进行的下去,但是遇到了最后的排序问题,让我着实有点头疼。
问题一:多个字符串集合取交集
简单的说就是把查出来的部分固定的字段数据中的交集数据拿出来,然后根据交集数据的个数进行排序举个例子就是这样:
一个字段的数据是这样:
123,234,456,789
b字段的数据是这样:
123,234,456,695
那想要得到的结果是两个交集:
123,234,456
这样用mysql的内置的方法肯定是不能直接得出这样的结果的,只能借助方法进行实现,所以我写了这样的方法:
DELIMITER $$
USE `sogaa_online`$$
DROP FUNCTION IF EXISTS `find_interstr_in_set`$$
CREATE DEFINER=`root`@`%` FUNCTION `find_interstr_in_set`(str VARCHAR(5000)) RETURNS VARCHAR(500) CHARSET utf8
BEGIN
DECLARE first_one_str VARCHAR(100);
DECLA