Can Mysql Split a column?

前端 未结 7 1528
别那么骄傲
别那么骄傲 2020-11-22 03:00

I have a column that has comma separated data:

1,2,3
3,2,1
4,5,6
5,5,5

I\'m trying to run a search that would query each value of the CSV s

7条回答
  •  广开言路
    2020-11-22 03:13

    It seems to work:

    substring_index ( substring_index ( context,',',1 ), ',', -1) 
    substring_index ( substring_index ( context,',',2 ), ',', -1)
    substring_index ( substring_index ( context,',',3 ), ',', -1)
    substring_index ( substring_index ( context,',',4 ), ',', -1)
    

    it means 1st value, 2nd, 3rd, etc.

    Explanation:

    The inner substring_index returns the first n values that are comma separated. So if your original string is "34,7,23,89", substring_index( context,',', 3) returns "34,7,23".
    The outer substring_index takes the value returned by the inner substring_index and the -1 allows you to take the last value. So you get "23" from the "34,7,23".
    Instead of -1 if you specify -2, you'll get "7,23", because it took the last two values.

    Example:

    select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
    

    Here, prices is the name of a column in MyTable.

提交回复
热议问题