有没有办法可以将多个值存储在单个单元格而不是不同的行中,然后搜索它们?
我可不可以做:
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'
您可以这样做,但这会使查询效率低下。您可以在字段中查找子字符串,但这意味着查询不能使用任何索引,当您的表中有很多行时,这是一个很大的性能问题。
这是您在特殊情况下使用两个字符代码的方式:
select pId from table where find_in_set('US', available)
将值保存在单独的记录中会使您使用这些值的每个操作(如过滤和连接)更加高效。
您可以使用 like 运算符来获取结果
Select pid from table where available like '%US%'