2013-05-02 114 views
3

我有一列有逗号分隔的多个数字。例如对于行:SQL选择'列'中的id在哪里

`numbers`: 
1,2,6,66,4,9 

我想打一个查询,将选择仅在数6(例如)在列numbers行。

我无法使用LIKE,因为如果有66,我想只在存在号码6的情况下选择该行,它也可以。

感谢,和对不起我的英语

+0

您正在使用哪种RDMBS? – mwigdahl 2013-05-02 19:53:35

回答

6

您可以使用like。在列表的开头和末尾连接字段分隔符,然后使用like。下面是在SQL Server sytnax:

where ','+numbers+',' like '%,'+'6'+',%' 

SQL Server使用+字符串连接。其他数据库使用||concat()函数。

+0

将逗号添加到原始字符串既有效又简洁。我喜欢。 – Maple 2013-05-02 20:20:51

1

你应该改变你的数据库,而不是让一个新的表与你当前表的行相连。所以,如果你的行看起来是这样的:

id numbers 
1 1,2,6,66,4,9 

您将有加入像这样

row_id number 
1  1 
1  2 
1  6 
1  66 
1  4 
1  9 

这些值的新表然后,你可以搜索数列中的数字6,并获得ROW_ID