mysql生成varchar型別主鍵排序

2021-09-07 05:45:13 字數 1010 閱讀 7461

用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;

mysql生成varchar型別主鍵排序

用uuid生成20位的主鍵 select left replace uuid 20 from dual另一種方法 因為資料庫中有字母 需要排序的時候去除字母,重新取最大值,然後加1算作新的主鍵 select ifnull dept id,0 1 from base dept order by dep...

mysql關於char和varchar型別的區別

在mysql中,字串型別中的char屬於有固定長度的字串型別 二varchar型別屬於可變長度的字串型別 如何理解固定長度和可變長度呢?固定長度指 當長度設定為4時,長度是固定的 當實際值只有1位時,會自動用空格補足4位 可變長度指 當長度設定為4時,長度是隨著實際值為改變,最長為4 當實際值只有1...

MySQL資料庫varchar轉int型別的方法

mysql varchar轉int型別的方法 cast函式的使用 1 問題描述 獲取乙個表user中age的最大值。由於歷史原因,age是varchar型別的 2 問題解決 方案一 select max cast as unsigned integer from user 方案二 select fr...