获取MySQL中两个逗号分隔值之间的差异

时间:2018-07-19 06:27:12

标签: mysql sql

需要获取两个逗号分隔的字符串之间的区别,请参见以下示例以更好地理解

String 1: 1,2,3,4
String 2: 1,4 or 
String 2: 2,3 or 
String 2: 3,1 etc..

现在我需要得到两个字符串之类的结果

Example 1:

    String 1: 1,2,3,4
    String 2: 1,4

Required Output: 2,3

Example 2:

   String 1: 1,2,3,4
   String 2: 2,3

Required Output: 1,4

请帮助我如何在MySQL查询,过程或函数中进行操作?

2 个答案:

答案 0 :(得分:1)

如果您始终只使用两个指定的字符串,请尝试此操作

Select group_concat(x.c)
From 
(
  Select substring('1,2,3,4', (r * 2) -1 , 1) as c
  From (
  Select  @curRow := @curRow + 1 as r
  from sometable JOIN    (SELECT @curRow := 0) r
  WHERE   @curRow< (length('1,2,3,4') - length(replace('1,2,3,4', ',', '')))+1
  ) a
) x  
Where x.c not in (Select substring('1,4', (r * 2) -1 , 1) as c
                  From (
                          Select  @curRow := @curRow + 1 as r
                          from sometable
                                  JOIN (SELECT @curRow := 0) r
                          WHERE @curRow< (length('1,4') - length(replace('1,4', ',', '')))+1
                  ) a)

注意:如果要比较两个以上的字符串,则将此查询放入函数中并传递两个字符串参数,并将这些参数应用于此查询

答案 1 :(得分:0)

如果您创建一个将两个字符串作为输入并返回字符串的函数,那就太好了。

相关问题