msql检索包含中文的记录

由于业务中需要检索包含中文的条目

复制代码
SELECT * FROM ptstrategy_table WHERE length(`name`)!=char_length(`name`)

这个SQL用了MySQL中字符串长度函数 LENGTH()CHAR_LENGTH() 的不同。

在 MySQL 中:

  • LENGTH() 函数返回字符串的字节数。
  • CHAR_LENGTH() 函数返回字符串的字符数。

对于大多数英文字符或数字,一个字符占用一个字节。但对于一些特殊字符,特别是中文字符,一个字符可能占用多个字节。

当一个字段包含中文时,它的 LENGTH()CHAR_LENGTH() 就会不相等,因为中文字符所占的字节数大于1。

所以,这个 SQL 语句 SELECT * FROM ptstrategy_table WHERE LENGTH(name) != CHAR_LENGTH(name) 就是在找出字段 name 中包含有多字节字符的行,从而达到了检索字段中是否含有中文的目的。

相关推荐
Ethan01079 分钟前
隔离级别管读,乐观锁管写——RC/RR 与写冲突的本质
mysql
Ethan010743 分钟前
spring事务隔离级别,如果数据库设置为RC,spring可以改为RR吗
spring
Ethan01071 小时前
详解Spring 事务三大核心接口,以及我们能用它来做什么
spring
熊文豪1 小时前
【金仓数据库征文】不装中间件的 MySQL→金仓在线迁移,mysql_fdw 全流程,和一个差点漏掉的 emoji
数据库·mysql·中间件·电科金仓
C++、Java和Python的菜鸟1 小时前
第5章 后端Web基础 (MySQL基础)
前端·mysql·adb
IT瑞先生3 小时前
MariaDB与Mysql差异及版本对照
数据库·mysql·mariadb
凤山老林3 小时前
数据库连接池深度调优:Spring Boot + HikariCP 泄漏检测、参数调优与慢 SQL 拦截体系
数据库·spring boot·sql
秋风渡.3 小时前
MySQL数据库操作
数据库·mysql
乐橙开放平台3 小时前
养殖 SaaS 笔记:乐橙 IoT 物模型管环境,视频 OpenAPI 管回看
数据库·笔记·物联网·mysql·音视频
鸽芷咕5 小时前
MySQL/PostgreSQL 迁移金仓 KES:LEFT JOIN 丢数据排查与避坑指南
数据库·mysql·postgresql