2个独特的场组合反之亦然

时间:2013-06-04 02:19:54

标签: mysql database-design

您好可以组合使用2个字段吗?

示例:

ID  catID
 1    58 

因此我们不能将另一行存储为58-1。目前我在这两个领域都有主键,但它允许我存储58-1组合。

感谢

2 个答案:

答案 0 :(得分:0)

您可以使用concat()组合这两个字段:

select concat(id, '-', catId) as CombinedId
from t;

如果您愿意,可以将其封装在视图中。

如果您愿意,可以使用CombinedId加入另一个表。

但是,不建议这样做。如果要进行比较,请单独使用这两个值。

答案 1 :(得分:0)

假设IDcatID是对称的 1 ,您可以简单地说:

CHECK (ID < catID)

或者可能(取决于您的要求):

CHECK (ID <= catID)

1 I.e。对于每个(ID = X, catID = Y)(ID = Y, catID = X)X相当于Y