-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'
4

2 回答 2

4

可以这样做,但这会使查询效率低下。您可以在字段中查找子字符串,但这意味着查询不能使用任何索引,当您的表中有很多行时,这是一个很大的性能问题。

这是您在特殊情况下使用两个字符代码的方式:

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

将值保存在单独的记录中会使您使用这些值的每个操作(如过滤和连接)更加高效。

于 2013-08-31T11:24:34.067 回答
0

您可以使用 like 运算符来获取结果

Select pid from table where available like '%US%'
于 2013-08-31T11:26:31.277 回答