实现某字段分类自增的SQL插入语句

需求如下:表中有一字段type,值为0、1、2、3;另一字段node_id,需要根据type字段的值分类自增。例如现在插入8条数据,type字段的值分别为0、1、1、1、0、2、3、2,则新增时node_id字段对应的值为000001、100001、100002、100003、000002、200001、300001、200002。

插入的SQL语句如下:

INSERT INTO dm_busi_type (node_id, type)
SELECT CONCAT(#type, LPAD(count(1) + 1, 5, 0)), #type
FROM dm_busi_type WHERE type = #type

#type为MyBatis传入的参数。
CONCAT(a, b)函数的作用为拼接a、b两字符串。
LPAD(a, length, b)函数的作用为在左侧将字符串a使用字符b填充成为length位。例如LPAD(233, 5, 0),结果为00233。

在Mac OS X中解决MySQL中文乱码

一、新建数据库时确保Default Character Set设为utf8、Default Collation设为utf8_general_ci。若数据库建立时不为该编码,则修改数据库编码后需删除重建该数据库下所有表。若使用Java、PHP等操作数据库,请确保所有编码均被设置为utf-8。

二、若插入时仍存在乱码,先查看MySQL的编码设置:
1、使用Root账户进入MySQL命令行:在终端中执行命令:mysql -u root -p。
2、在MySQL命令行中执行命令:show variables like 'character_set_%';
3、查看除"character_set_filesystem"项外的值是否均为utf8。

三、若存在除"character_set_filesystem"项外不为utf8的值,则按如下方式进行修改:
1、关闭MySQL服务:重新启动终端,执行命令:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop,或在系统偏好设置中启动。
2、打开Finder,按快捷键Shift+Command+G(或点击菜单:前往->前往文件夹),输入/usr/local/mysql/support-files。
3、拷贝my-default.cnf至/etc文件夹下,并将拷贝后的文件更名为my.cnf。
4、编辑my.cnf,在该文件最后增加以下几行代码:

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8

5、启动MySQL服务:在终端中执行命令:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start,或在系统偏好设置中启动。

四、若使用Tomcat时,中文关键字查询仍无法正常获取结果,则按如下方式修改Tomcat配置文件:
1、打开Tomcat安装目录下的conf目录中的server.xml
2、搜索"Connector port",在其中加入URIEncoding="UTF-8"。