2011-03-26 157 views
0

我有一个大型表,用于根据varchar(200)类型的字段的值进行分区。我已经阅读this question,但由于字段的大小我不能使用此解决方案。
我的问题是:我可以使用LIKE'b%'或LIKE'o%'等Like标准吗?
如果不是,我该如何解决这个问题?如何在Mysql中使用LIKE标准对表进行分区

由于提前,
安东尼

+0

“但因为该领域的规模” ---嗯,即使你已经通过VARCHAR 200个字符的限制,你可以使用该解决方案。 – zerkms 2011-03-26 13:09:04

+0

当然,但我正在寻找更直接的东西。我可以使用这个解决方案写一个脚本,为每个分区做类似 的分区p1小于('bzzzz ....') 199次z。 无论如何,如果我不能使用LIKE标准,我会使用该解决方案。 :) – 2011-03-26 13:15:31

+1

你不需要写“z”199次。只要写'小于('c')' – zerkms 2011-03-26 13:21:09

回答

1

你最好指定范围内

less than ('c') 

这是短期和可读性。

+0

我收到一个错误: '错误1064(42000):VALUES的值必须与''附近的分区函数的类型相同'),分区p2的值小于('e'),...' – 2011-03-26 14:08:26

+0

@Antonio F .:是的,我错了... – zerkms 2011-03-26 14:17:02

0

似乎仅当分区是按键(不允许有重复值且不允许空值)时才允许在varchar上进行分区。

Here a discussion

我试图使用一个函数,“转换”,以整数值作为ASCII(),但它并不在MySQL比较分隔表达支持的功能来执行分割。

List of supported functions

相关问题