zoukankan      html  css  js  c++  java
  • mysql生成varchar类型主键排序

    用uuid生成20位的主键

    SELECT LEFT(REPLACE(UUID(), '-', ''),20) FROM DUAL

    另一种方法:

    因为数据库中有字母

    需要排序的时候去除字母,重新取最大值,然后加1算作新的主键

    SELECT IFNULL(DEPT_ID,0)+1 FROM base_dept ORDER BY DEPT_ID+0 DESC LIMIT 0,1

    或者

    使用MySQL函数CAST/CONVERT:

    mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?

    CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
    这个类型 可以是以下值其中的 一个:
    BINARY[(N)]
    CHAR[(N)]
    DATE
    DATETIME
    DECIMAL
    SIGNED [INTEGER]
    TIME
    UNSIGNED [INTEGER]

    所以我们也可以用CAST解决问题:

    SELECT IFNULL(DEPT_ID,0)+1 FROM base_dept ORDER BY CAST(DEPT_ID as SIGNED) DESC LIMIT 0,1;

    也可以使用CONVERT来搞定此问题:

    SELECT IFNULL(DEPT_ID,0)+1 FROM base_dept ORDER BY CONVERT(DEPT_ID,SIGNED) DESC LIMIT 0,1;
  • 相关阅读:
    List数组细解
    iOS之缓存
    Java_String的操作
    weak的理解
    Swift_单利
    Java 抽象类和接口
    Java 继承中的问题
    java 成员变量与局部变量
    纪中第十九天
    cin快读
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/5194792.html
Copyright © 2011-2022 走看看