跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 新菜鸟请问各位大佬 MySQL 能不能字段等于某个值才建立唯一索引
未分類
29 3 月 2020

新菜鸟请问各位大佬 MySQL 能不能字段等于某个值才建立唯一索引

新菜鸟请问各位大佬 MySQL 能不能字段等于某个值才建立唯一索引

資深大佬 : 353943780 23

例如:

a / b / c 都是字段名

(a = 1) + b + c 是唯一索引

(a != 1) + b + c 可重复

大佬有話說 (6)

  • 資深大佬 : b821025551b

    看不懂,a 都是字段名了,怎么去==1

  • 主 資深大佬 : 353943780

    @b821025551b 可能是我描述不清楚,如果数据记录中 a 字段值为 1 的时候,与字段 b 、c 联合为唯一

  • 資深大佬 : scriptB0y

    有一种索引叫做 partial index,可以根据条件建立索引。你这种情况可以

    create unique index unique_b_c_if_a_is_one on partial_index(b,c) where a=’1′;

    然后再创建一个索引

    create index unique_b_c_if_a_not_one on partial_index(b,c) where a!=’1′;

    就可以满足你的需求。但是据我所知 postgres ( https://www.postgresql.org/docs/9.3/indexes-unique.html ) 和 SQL Server 支持这种索引,mysql 目前应该不支持。

    不知道有没有其他方案哈。

  • 資深大佬 : lysS

    你把那两中情况分成两个表嘛

  • 資深大佬 : rrfeng

    mongodb 也支持 partial index

    拆一下表吧。或者另外加逻辑去重。

  • 資深大佬 : MonoLogueChi

    不清楚 mysql 有没有这种操作,但是我知道 postgresql 有这样的索引,叫做 Partial Indexes,

    CREATE INDEX xxx_index ON table1(col1) WHERE col2 is not true;

    mysql 我用的不多,不太清楚有没有这种东西,你可以顺着这个思路查一下

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具