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 中包含有多字节字符的行,从而达到了检索字段中是否含有中文的目的。

相关推荐
云絮.20 分钟前
数据库操作
数据库·mysql·算法·oracle
云烟成雨TD2 小时前
Spring AI Alibaba 1.x 系列【77】执行取消
java·人工智能·spring
设计师小聂!2 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
Tong Z3 小时前
Mysql DDL中的ALGORITHM
数据库·mysql
摇滚侠4 小时前
SpringMVC 入门到实战 视图解析器 44-48
java·spring·maven·intellij-idea
李白的天不白4 小时前
查找容器IP
sql
染翰5 小时前
Nacos 切换 Namespace 后配置不生效、占位符报错终极复盘
java·后端·spring·nacos
minji...7 小时前
MySQL数据库 (七) MySQL表的基本查询(上),insert、replace、select、where、order by
数据库·mysql·select·replace·insert·order by·where
Flittly7 小时前
【AgentScope Java新手村系列】(4)结构化输出
java·spring boot·spring·ai
swordbob8 小时前
Spring 3 级缓存解决循环依赖
java·spring