Mysql分区类似于if语句

nnt7mjpx  于 2023-03-11  发布在  Mysql
关注(0)|答案(1)|浏览(142)

我想用一个名为“column_value”的列来划分我的表,比如说“mytable”。这个列是一个包含很多值的整数。我想有3个分区:p1,其中column_value为433; p2,其中column_value为21;以及p3,其中所有其他值都位于其中。我该如何做到这一点?我可以在分区定义中使用函数吗?我可以在没有函数的情况下做到这一点吗?非常感谢。
我试着在mysql和其他网站的文档中搜索类似的东西,但是我没有找到任何解决方案。

yhived7q

yhived7q1#

如果可以添加生成的列,那么列表分区也可以

DROP TABLE IF EXISTS T;

CREATE TABLE T(ID INT,VAL INT,LID INT AS (CASE WHEN ID = 21 THEN ID WHEN ID = 433 THEN ID ELSE 999 END)
)
PARTITION BY LIST(LID)
(
PARTITION P438 VALUES IN(433),
PARTITION P21  VALUES IN(21),
PARTITION PREST VALUES IN(999)
);

https://dbfiddle.uk/lquwhdnP

相关问题