2013-08-31 35 views
-1

是否有一種方法可以將多個值存儲在單個單元格中而不是不同行中並搜索它們?將多個值存儲在單個單元格中而不是不同行中

我可以這樣做:

pId | available 
1 | US,UK,CA,SE 
2 | US,SE 

相反的:

pId | available 
1 | US 
1 | UK 
1 | CA 
1 | SE 

然後做:

select pId from table where available = 'US' 
+1

你將如何確保只在第一個版本一次分配一個代碼? –

+1

SQL標記是指標準語言,而不是關於供應商擴展的問題(例如MySQL,MS SQL Server),所以如果您認爲您的問題涉及特定的擴展名,請改用該擴展名的標記。 – Strawberry

回答

4

可以這樣做,但它會使查詢效率低下。您可以在字段中查找子字符串,但這意味着查詢無法使用任何索引,當您的表中有許多行時,這是一個很大的性能問題。

你這是怎麼會在你的特殊情況下,有兩個字符代碼使用它:

select pId from table where find_in_set('US', available) 

保持在單獨記錄的值,使每一個地方,你使用的值,如過濾和加盟,更高效的操作。

0

你可以使用像運營商得到的結果

Select pid from table where available like '%US%' 
相關問題