【问题标题】:Three unique values of mysql tablemysql表的三个唯一值
【发布时间】:2015-04-23 04:43:45
【问题描述】:

假设我在一个 mysql 表中有 三个 字段。

  • 字段1
  • 字段2
  • 字段3

我知道,如果我将 field1 和 field2 加入为唯一字段,则适用以下规则:

field1, field2 1 2 //is allowed 2 1 //is NOT allowed if (1,2) exists

我怀疑这将如何处理三个字段。例如

field1, field2, field3 1 2 1 //is allowed 1 2 2 //is this allowed (if previous exist)? 2 1 2 //is this allowed? (if previous exist) 2 1 3 //is this allowed? (only if the first one exists)

我真正需要的是避免重复 field1 和 field2 对。也就是说,我希望 1 2 11 2 2 一样存在,但 2 1 12 1 2 不应该存在(注意 field1 和 field2 开关)。这究竟是如何工作的?

【问题讨论】:

  • 一个想法是考虑相反的逻辑:始终存储两个版本,但带有指示哪个版本是“真实”的标志

标签: mysql


【解决方案1】:

在插入之前对列值进行排序。这样,field1 总是

【讨论】:

    【解决方案2】:

    真的我不知道你在做什么,但是请注意,当你输入一个唯一字段时,它不能重复,所以0 0 0 0 , 1 1 1 1, 2 2 2 2, 3 3 3 3 没问题,但是如果你尝试在1 0 0 1, 1 0 0 2... 后面输入一个数字,你的结果是错误的,并且数据不会被保存。因为 field1 与“1”重复,也许你可以把你在做什么,为了给其他选项,因为这个配置你可以存储有限的数据

    【讨论】:

    • 我不知道你想说什么
    • 正确。我什么都听不懂。
    猜你喜欢
    • 2010-12-27
    • 2014-08-17
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2010-12-02
    相关资源
    最近更新 更多