enum 字段如何获取最大值
时间:2011-08-06
来源:互联网
数据库版本 MySQL 5.1
测试表结构
SQL code
如何知道name字段的最大值呢??
或者
SQL code
这样插入的时候会提示错误,可以让它不提示错误,而是直接返回插入了0条记录吗??
主要是想获取ENUM的所有值,用
SQL code
然后后台,如PHP可以使用
SQL code
这样是可以,但...如果ENUM里的可能值是...
SQL code
这种比较变态的可能值的话,上面这条PHP命令就失效了(当然还可以用正则表达式的方法来分割字符串)
但我想...如果知道ENUM的最大值的话,是不是可以
先创建一个临时表
SQL code
然后
SQL code
最后
SQL code
然后后台就可以直接保存这个数组了...
当然...这样的效率绝对比不上正则表达式来得快,但...因为我不知道ENUM里会转移的字符到底有多少,所以只好用这种笨方法了(但绝对准确)
但关键是如果用上面INSERT INTO TAB VALUES(1),(2)...;的方法,则当有某个值不是ENUM里可能值的话,就会因为错误而导致前面的插入都失效...而如果每次INSERT INTO 一条数据的话...又太影响效率了...
有什么办法可以获取到ENUM字段的最大可能值吗??
测试表结构
SQL code
DROP TABLE IF EXISTS `t1`; CREATE TABLE IF NOT EXISTS `t1( `id` INT(1) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` ENUM('a','b','c') NOT NULL );
如何知道name字段的最大值呢??
或者
SQL code
INSERT INTO `t1` VALUES(1,5);
这样插入的时候会提示错误,可以让它不提示错误,而是直接返回插入了0条记录吗??
主要是想获取ENUM的所有值,用
SQL code
SHOW FULL COLUMNS FROM `t1` LIKE 'name';
然后后台,如PHP可以使用
SQL code
$arr = explode("','", strsub($db_result->Type, 5, -1);
这样是可以,但...如果ENUM里的可能值是...
SQL code
`name` ENUM('a','\',\'b\',\'','c')
这种比较变态的可能值的话,上面这条PHP命令就失效了(当然还可以用正则表达式的方法来分割字符串)
但我想...如果知道ENUM的最大值的话,是不是可以
先创建一个临时表
SQL code
CREATE TEMPORARY TABLE IF NOT EXISTS `t_tmp` SELECT `name` FROM `t1` WHERE 1<>1; ALTER TABLE `t_tmp` ADD COLUMN `id` INT(1) NOT NULL AUTO_INCREMENT PRIMARY KEY;
然后
SQL code
INSERT INTO `t_tmp`(`name`) VALUES(1),(2)...;
最后
SQL code
SELECT * FROM `t_tmp` WHERE 1=1 ORDER BY `id`;
然后后台就可以直接保存这个数组了...
当然...这样的效率绝对比不上正则表达式来得快,但...因为我不知道ENUM里会转移的字符到底有多少,所以只好用这种笨方法了(但绝对准确)
但关键是如果用上面INSERT INTO TAB VALUES(1),(2)...;的方法,则当有某个值不是ENUM里可能值的话,就会因为错误而导致前面的插入都失效...而如果每次INSERT INTO 一条数据的话...又太影响效率了...
有什么办法可以获取到ENUM字段的最大可能值吗??
作者: ma2jiajia 发布时间: 2011-08-06
ENUM是表定义定死的 业务定死的数据为什么非要计算出来
作者: rucypli 发布时间: 2011-08-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28