首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

修改MySQL varchar类型字段排序规则

记录一个在工作中遇到的问题,也不算是问题,为的是找一种简便的方法批量修改数据表字段排序规则,在MySQL中叫collation,常常和编码CHARACTER一起出现的。...collation有三种级别,分辨是数据库级别,数据表级别和字段级别。...网上搜到的解决办法,都提到了修改数据表级别collation排序规则。...但是我遇到的场景是数据表级别已经是utf8_unicode_ci,而字段级别是utf8_general_ci,(这里我们关心的字段类型是varchar)。...由于需要修改的字段太多了,手工修改肯定是费时费力的。自然也想到了用脚本的方式批量修改,但是发现这种通过查找MySQL信息表、过滤、拼接生成批量修改的语句太好用了,而且还能做到针对varchar类型。

4.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL排序字段数据相同不能分页问题

MySQL排序字段数据相同不能分页问题,最近同事遇到一个列表的分页有bug,点击第1行,第2行数据会出现重复的,初步怀疑是数据重复了,通过SQL查询,确认数据都没重复。...不过分页时候会出现重复,所以怀疑是分页问题,因为我之前遇到过order by的字段有null值的情况,排序也会有问题,所以通过经验去排查排序字段数据,发现并没有null值的数据。...只是数据很多都是一样的,因为是通过批量导入的,新增时间都保存为一样的,然后分页再根据这个新增时间去排序,就会出现好像“数据重复”的现象 通过查询MySQL官方的资料,https://dev.mysql.com...大致意思是,如果order by排序字段有相同的数据,则服务器可以自由地以任何顺序返回这些行,并且可能会根据整体执行计划以不同的方式返回。...所以,问题就知道了,通过官网资料,可以知道可以在order by后面加上一个唯一的id mysql> SELECT * FROM ratings ORDER BY category, id; +---

2.3K40

MYSQL用法(十六) MySQL按指定字段自定义列表排序

一、 ORDER BY 排序 要求:按照字段IS_NEW_PROJ的降序、字段LOAN_APR的降序、字段GMT_BUY_START的升序排序 sql语句如下: SELECT b.PROJECT_ID...二、 ORDER BY FIELD排序(自定义排序规则) 要求:按照字段PROJECT_STATUS指定的顺序排序 sql语句如下: SELECT b.PROJECT_ID AS project_id...三、 ORDER BY FIELD排序升级(多条件组合排序) 要求:按照字段IS_NEW_PROJ降序、字段PROJECT_STATUS指定的顺序排、字段LOAN_APR降序、字段GMT_BUY_START...四、 ORDER BY 排序终极版(多条件组合排序+自定义排序) 要求:按照字段IS_NEW_PROJ降序、字段PROJECT_STATUS指定的顺序排序字段GMT_BUY_START降序、字段PROJECT_STATUS...指定的顺序排序 sql语句如下: SELECT b.PROJECT_ID AS project_id, b.PROJECT_TITLE AS project_title, b.PROJECT_STATUS

2.4K30

mysql密码字段类型_MySQL 字段类型

unsigned 和 zerofill UNSIGNED 修饰符规定字段只保存正值,即无符号,而mysql字段默认是有符号的。...对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。 DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。...ENUM 类型字段可以从集合中取得一个值或使用 null 值,除此之外的输入将会使 MySQL 在这个字段中插入一个空字符串。...,当日热门,生日多少天等等逻辑 不要使用null 为什么这么说呢,因为MYSQL对NULL字段索引优化不佳,增加更多的计算难度,同时在保存与处理NULL类形时,也会做更多的工作,所以从效率上来说,不建议用过多的...保存数值类型最好不要用字符串数据类型,这样存储的空间显然是会更大,而且在排序时字符串的9是大于22的,其实如果进行运算时mysql会将字符串转换为数值类型,大大降低效果,而且这种转换是不会走原有的索引的

14.4K20

日常问题:MySQL排序字段数据相同不能分页问题

【问题日期】 2022-11-14 22:45:12 【问题描述】 MySQL 排序字段数据相同不能分页问题:在分页查询数据时,按创建时间排序,由于数据是批量创建的,导致部分数据创建时间一样,而此时分页查询数据...,翻页后出现重复数据 【问题拆解】 分页查询数据 按照创建时间排序&存在创建时间相同的数据 翻页后出现重复数据 【问题来源】 朋友遇到的 【可能原因】 是因为排序字段只有创建时间 【参考链接】 MySQL...换句话说,这些行的排序顺序对于无序的列是不确定的。...51CTO 博客 - 《MySQL排序字段数据相同不能分页问题》: https://blog.51cto.com/u_15704340/5439010 如果 order by 排序字段有相同的数据...在 MySQL 5.7.33 之前,无法覆盖此行为,即使在使用其他优化可能更快的情况下也是如此。

1.7K40

MySQL 批量修改所有表字段字符集及排序规则

Liscense过期,所以验证的时候,验证过期了,所以每次启动之后就core dump了,所以想着重新申请了License,替换下 Jira的证书是在数据表productlicense中LICENSE字段存储的...报错数据库排列规则不是推荐的,但其实并没有修改数据库排列规则,之前是可以用的,这都不重要,那就改吧 先查看一番数据库的排序规则 ? 确实不是utf8_bin,接着看下该库里面表中字段排序规则 ?...同样是utf8_general_ci,没办法,只能改了 数据库里面还有其他库在用,所以没办法直接全局修改数据库的排序规则,只能单独修改这个库的所有表的所有字段排序规则 查看了下这个库,有300多张表...接下来就简单了,将得到的命令执行就可以了,将上面的查询结果通过mysql -e或select info outfile导出为.sql文件之后,直接导入.sql文件即可 ?...导入完成后,再去查看原来表的排序规则 ? 修改完毕,下班回家

5.2K20

技术分享 | MySQL 字段长度限制的计算方法

一、MySQL 限制回顾 之前在《MySQL Text 字段的限制》一文中讲过了关于 MySQL 在 Server 层和 InnoDB 层的限制,但是限制的算法没有详细展开,这里进行补充说明,先回顾一下...另:以下计算方式均已 MySQL 5.7.27 进行说明。...二、Server 层限制的计算方法 2.1 计算过程 一般说来,如果是 MySQL Server 层做了限制,则返回如下报错: Row size too large....) / 8; /* length 的计算方式 sql/unireg.cc:833 */ length=field->pack_length; /* 这个pack_length就是和字段类型相关,以...length / 8; default: return 0; } } 2.2 小结 根据上面计算方式的梳理,在 MySQL Server 层计算长度的公式,可以写成这样的伪代码: data_offset

5.6K10
领券