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