2013-05-02 109 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