PHP / MySQL使用varchar作为一种id

时间:2013-03-22 06:29:40

标签: php mysql

我必须创建一个包含一些产品和一些SKU的信息的数据库,其中一部分是产品类型和子类型,共有60-70种产品类型和2-20个子类型他们每个人。

需要生成的SKU代码部分是XXY形式,其中XX是产品类型,Y是它的子类型,对于类型部分,很容易添加唯一的auto_increment字段(因为它永远不会超过99)但是对于子类型部分,我需要像1-9-AZ那样使用数字和字母。

实现这一目标的最简单方法是什么?我有一些想法如何用javascript / json来检查和检索Y字段,但我觉得必须有一个更简单的方法,只需使用php / mysql。

基本上我需要的是php / mysql为每种独特的产品类型生成从1到Z的单字符“id子类型”。

1 个答案:

答案 0 :(得分:0)

我担心你必须使用Javascript或PHP(或者你正在使用服务器端的任何东西)来生成这个char。没有内置的SQL函数可以做到这一点。对于您的单字符ID子类型,您不应使用VARCHARCHAR(1)

CHAR具有固定长度,因此每个字符只需1个字节。 VARCHARCHAR + 2个字节相同,以保存长度信息。

示例:

$characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; 
$char = strtoupper($characters[rand(0, strlen($characters) - 1)]);