您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在MySQL中比较版本字符串(xyz)?

如何在MySQL中比较版本字符串(xyz)?

最终,我找到了对版本字符串进行排序的另一种方法

在将字符串以可排序的方式存储到数据库之前,我先对其进行了对齐。当我使用python Django框架时,我刚刚创建了一个VersionField,可以在存储时对版本字符串进行“编码”,在读取时对其进行“解码”,因此对于应用程序而言是完全透明的:

这是我的代码

The justify function :

def vjust(str,level=5,delim='.',bitsize=6,fillchar=' '):
    """
    1.12 becomes : 1.    12
    1.1  becomes : 1.     1
    """
    nb = str.count(delim)
    if nb < level:
        str += (level-nb) * delim
    return delim.join([ v.rjust(bitsize,fillchar) for v in str.split(delim)[:level+1] ])

The django VersionField :

class VersionField(models.CharField) :

    description = 'Field to store version strings ("a.b.c.d") in a way it is sortable'

    __Metaclass__ = models.SubfieldBase

    def get_prep_value(self, value):
        return vjust(value,fillchar=' ')

    def to_python(self, value):
        return re.sub('\.+$','',value.replace(' ',''))
MySQL 2022/1/1 18:49:22 有250人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶