猿问

MySQL可以拆分列吗?

MySQL可以拆分列吗?

我有一列有逗号分隔的数据:

1,2,33,2,14,5,65,5,5

我正在尝试运行一个搜索,它将分别查询CSV字符串的每个值。

0<first<5   and  1<second<3  and  2<third<4

我知道,我可以返回所有的查询,并将其分割,然后自己进行比较。我很好奇是否有办法这样做,所以MySQL做处理工作。谢谢!


至尊宝的传说
浏览 928回答 4
4回答

慕容3067478

使用substring_index(`column`,',',1)&nbsp;==>&nbsp;first&nbsp;value substring_index(substring_index(`column`,',',-2),',',1)=>&nbsp;second&nbsp;value substring_index(substring_index(`column`,',',-1),',',1)=>&nbsp;third&nbsp;value在你的WHERE条款中。SELECT&nbsp;*&nbsp;FROM&nbsp;`table`WHERE&nbsp;substring_index(`column`,',',1)<0&nbsp;ANDsubstring_index(`column`,',',1)>5

holdtom

它似乎奏效了:substring_index&nbsp;(&nbsp;substring_index&nbsp;(&nbsp;context,',',1&nbsp;),&nbsp;',',&nbsp;-1)&nbsp;)&nbsp;substring_index&nbsp;(&nbsp;substring_index&nbsp;(&nbsp;context,',',2&nbsp;),&nbsp;',',&nbsp;-1)&nbsp;) &nbsp;substring_index&nbsp;(&nbsp;substring_index&nbsp;(&nbsp;context,',',3&nbsp;),&nbsp;',',&nbsp;-1)&nbsp;)&nbsp;substring_index&nbsp;(&nbsp;substring_index&nbsp;(&nbsp;context,',',4&nbsp;),&nbsp;',',&nbsp;-1)&nbsp;)意思是第一值、第二、第三等。说明:内在substring_index返回以逗号分隔的前n个值。所以如果你原来的字符串是“34,7,23,89”,substring_index( context,',', 3)返回“34,7,23”。外substring_index获取内部返回的值。substring_index而-1允许您获取最后一个值。所以你从“34,7,23”中得到“23”。而不是-1如果您指定-2,您将得到“7,23”,因为它使用了最后两个值。例子:select&nbsp;*&nbsp;from&nbsp;MyTable&nbsp;where&nbsp;substring_index(substring_index(prices,',',1),',',-1)=3382;这里,prices中的列的名称。MyTable.

梵蒂冈之花

您可以通过使用MySQLREGEXP或类似工具获得所需的东西。见MySQL模式匹配文档
随时随地看视频慕课网APP

相关分类

MySQL
我要回答