sql查询 - 从字符串获取id的正确方法?
问题描述:
我有一个客户表,其中有一个字段“类别”。它是一个字符串,用逗号除以逗号,例如1,11,14,21
。sql查询 - 从字符串获取id的正确方法?
假设我想查询所有具有categoryID 1的客户 - 查询它的正确方法是什么?
的问题是,ID 1可在开始,中间或字符串的结尾,甚至是唯一的ID,所以我不得不覆盖所有的情况下,像:
WHERE categories LIKE '1'
OR categories LIKE '1%,'
OR categories LIKE '%,1,%'
OR categories like '%,1'
有一个更优雅(可能更快)的方式来做到这一点?
答
你应该掐死设计数据库的人来这样工作。我永远不能想到你应该在一个字段中分隔数据的情况。
在这一点上,我认为这将是一个适合你的解决方法。
WHERE ','+[categories]+',' LIKE '%,1,%'
对于什么数据库?真正的解决方案是**不**存储这样的信息,并使用适当的多对多表格设置。 – 2011-05-07 15:30:46