如何在Mysql中使用LIKE条件对表进行分区
我有一个很大的表,要根据varchar(200)类型字段的值进行分区。我已经阅读了,但由于字段的大小,我无法使用此解决方案。如何在Mysql中使用LIKE条件对表进行分区,mysql,sql-like,database-partitioning,Mysql,Sql Like,Database Partitioning,我有一个很大的表,要根据varchar(200)类型字段的值进行分区。我已经阅读了,但由于字段的大小,我无法使用此解决方案。 我的问题是:我可以使用“b%”或“o%”等类似标准吗? 如果没有,我如何解决这个问题 提前感谢, Antonio您最好将范围指定为 less than ('c') 它简短易读。似乎只有在按键进行分区时才允许对varchar进行分区(不允许重复值和空值) 我尝试使用一个函数来执行分区,该函数将“转换”为ASCII()形式的整数值,但在分区表达式中,它在Mysql支持的函
我的问题是:我可以使用“b%”或“o%”等类似标准吗?
如果没有,我如何解决这个问题 提前感谢,
Antonio您最好将范围指定为
less than ('c')
它简短易读。似乎只有在按键进行分区时才允许对varchar进行分区(不允许重复值和空值) 我尝试使用一个函数来执行分区,该函数将“转换”为ASCII()形式的整数值,但在分区表达式中,它在Mysql支持的函数中无法进行比较
“但是因为字段的大小”——嗯,即使您将varchar限制为200个字符,您也可以使用该解决方案。当然,但我正在寻找更直接的解决方案。我可以使用这个解决方案编写一个脚本,为每个分区执行类似于分区p1值小于('bzzzz…')199乘以z的操作。无论如何,如果我不能使用类似的标准,我将使用该解决方案。:)你不需要写“z”199次。只要写
小于('c')
@zerkms:你赢了我一分钟@Antonio:小于('c')
比小于'bzz…z'
更好,因为它较短,并且捕获具有'b{what | ever}'
的字符串,例如,如果它包含比z
更大的ascii顺序的字符。我得到一个错误:错误1064(42000):值必须与附近的分区函数具有相同的类型,分区p2值小于('e'),…