MySQL 字符串长度 char_length、length

一、方法分类

方法分类

二、具体方法

函数 描述 区别
char_length(str)或character_length(str) 返回字符串 str 的字符 1、单位为字符
2、不管汉字还是数字或者是字母都算是一个字符
length(str) 返回字符串 str 的字节长度,区别于char_length(str) 1、单位为字节
2、utf8编码下,一个汉字三个字节,一个数字或字母、空格一个字节。
2、gbk编码下,一个汉字两个字节,一个数字或字母、空格一个字节。

注意: 利用两者的区别可以检验字段中是否含有中文字符
length() <> char_length():结果为1 该字段中含有中文字符; 结果为0 该字段中不含有中文字符。

二、实例

select
#返回字符串 'student学生' 的字节数
	length('student学生'),									#13
	length('student 学生'),									#14
#返回字符串 'student学生' 的字符数
	char_length('student学生'),								#9
	char_length('student 学生'),							#10
	character_length('student学生'),						#9
#检验字段中是否含有中文字符
	length('student学生') <> char_length('student学生')  	#1
#输出结果:13|14|9|10|9|1
本文转载于网络 如有侵权请联系删除

相关文章

  • Python基础训练100题-12

    分享一些Python学习题目实例056:画圈实例057:画线实例058:画矩形实例059:画图(丑)实例060:字符串长度实例056:画圈题目:画图,学用circle画圆形。程序分析:无。fromtkinterimport* canvas=Canvas(width=800,height=600,bg='yellow') canvas.pack(expand=YES,fill=BOTH) k=1 j=1 foriinrange(26): canvas.create_oval(310-k,250-k,310+k,250+k,width=1) k+=j j+=0.3 mainloop()复制实例057:画线 题目:画图,学用line画直线。程序分析:无。 if__name__=='__main__': fromtkinterimport* canvas=Canvas(width=300,height=300,bg='green') canvas.pack(expand=YES,fill=BOTH) x0=263 y0=263 y1

  • Web前端基础(02)

    ###课程回顾文本标签内容标题h1-h6:独占一行自带上下间距字体加粗字体从大到小段落标签p:独占一行自带上下间距换行br水平分割线hr字体相关:b加粗i斜体small小字s删除线u下划线列表标签无序列表:ul:typeli有序列表:ol:typestartreversedli列表嵌套:有序和无序可以任意无限嵌套图片标签imgsrc:路径 相对路径:访问站内资源时使用图片和页面在同一目录:直接写图片名图片在页面的上级目录时:…/图片名图片在页面的下级目录时:文件夹名/图片名。。。… 绝对路径:访问站外资源时使用,称为图片盗链,可以节省本站资源,但是有找不到图片的风险alt:图片不显示时显示的文本title:鼠标在图片上悬停时显示的文本width/height:两种赋值方式:1.像素2.百分比,如果只设置宽度高度会自动等比例缩放超链接ahref:路径,可以指向页面或其它文件(浏览器支持浏览则浏览,不支持则下载)包裹文本就是文本超链接,包裹图片就是图片超链接页面内部跳转,回到顶部表格table标签:tabletr表示行td表示列th表头(加粗并居中)caption表格标题属性:table:

  • 隐藏MySQL InnoDB Cluster / ReplicaSet实例

    作者:MiguelAraújo译:徐轶韬MySQLRouter是InnoDBCluster/ReplicaSet的核心组件,可将客户端流量自动路由到数据库组中的正确实例。MySQLRouter可以自动适应拓扑更改,但在某些情况下,我们可以使用特定属性标记一个实例,这个属性将更改路由器的默认行为。在8.0.21版本中,我们在AdminAPI引入了标记框架,通过它我们能够引入非常需要的功能:隐藏MySQLInnoDBCluster/ReplicaSet实例为什么要隐藏实例?暂时将实例标记为无法接收流量这一功能非常重要,因为它可以:在服务器上执行滚动升级而不会中断传入流量在服务器上执行维护操作或配置更改,而不必停止MySQL将服务器从滞后的客户端工作负载中排除排除出于灾难恢复目的而位于不同区域/区域中的数据库服务器在进行备份或生成报告时,从读取的工作负载中排除SECONDARY服务器,以避免影响其他查询。升级/维护执行MySQL的滚动升级需要使脱机实例。但必须注意,可能会产生与该实例的连接失败。从路由目标候选列表中排除该实例后,DBA可以安全地使服务器脱机,并确保没有应用程序/路由器流量发送

  • wordpress上传图片无法显示的几种解决方法

      早上ytkah的客户说他的wordpress网站后台上传图片无法显示,后台无法显示缩略图,在新标签打开图片url也无法显示,如何解决呢?有几种原因,我们一起来看看吧  1、权限不够  可能是运维人员为了安全起见,把文件夹权限进行了限制,这时把/wp-content/uploads这个文件夹权限设为755或更高即可  2、数据库的上传路径不正确造成的  进入PHPMyAdmin数据库,查看一下wp_options表里的upload_path键值,看看路径是不是wp-content/uploads,如果不是这个路径,将路径修改成wp-content/uploads然后保存,如下图所示  3、Apache或nginx伪静态规则错误  以Apache为例,查看网站根目录/下的.htaccess文件里的规则有没对,默认是#BEGINWordPress #Thedirectives(lines)between"BEGINWordPress"and"ENDWordPress"are #dynamicallygenerated,andshouldonlybe

  • 自然语言处理中的预训练模型(下)

    4PTM拓展4.1引入知识的PTMPTM通常是基于大规模文本语料训练通用的语言表示,而缺乏领域特定的知识。通过外部知识库引入领域知识被证明可以提升模型结果。这些外部知识包括:语言知识、语义知识、常识知识、事实知识和其他领域特定的知识等。一方面,外部知识可以在预训练阶段进行引入。早期的一些研究专注于联合学习知识图谱嵌入和词嵌入,而从BERT开始,研究者们提出了一些专为引入外部知识而设计的预训练任务,例如:「LIBERT」通过一个附加的语言约束任务引入了「语言知识」;「SentiLR」通过对每个单词添加情感极性,将MLM拓展为Label-AwareMLM,在多种情感分类任务上达到SOTA(「语言知识」);「SenseBERT」在预训练时不仅预测被遮罩的词语,还预测其在WordNet中的supersenses(对词语的一种分类,属于「语义知识」);「ERINE」将在知识图谱中预训练的图谱嵌入结合到对应的实体上,来增强文本表示(「事实知识」);类似地,「KnowBERT」将BERT与一个实体连接模型联合训练,以端到端的方式集成实体表示(「事实知识」);「KEPLER」则联合优化知识嵌入和语言模

  • RocketMq之NameSever浅析

    NameSever是一种路由服务,类似于dubbo中的注册中心zk,它存储了Broker的路由信息,供Producer和Consumer使用,不然Producer怎么知道往哪个Broker发送消息。多个NameSever之间没有通信,每个NameSever都会保存所有路由信息。NameSever的启动NameSever是通过命令行在服务器上启动的,通过命令,执行NamesrvStartup.main9()方法,源码如下:publicstaticNamesrvControllermain0(String[]args){ try{ //构建NamesrvController NamesrvControllercontroller=createNamesrvController(args); //初始化NamesrvController start(controller); Stringtip="TheNameServerbootsuccess.serializeType="+RemotingCommand.getSerializeTypeConfigInThisSer

  • python3 selenium + f

    一、分析: 抓取动态页面js加载的人民日报里面的新闻详情https://wap.peopleapp.com/news/1 先打开,然后查看网页源码,发现是一堆js,并没有具体的每个新闻的url详情,于是第一反应,肯定是js动态加载拼接的url。然后接着按f12查看,就看url,发现出来了好多url。 然后点击具体的某一个新闻详情页面,查看url,把这个url的后面两个数字其中一个拿到访问主页的时候,f12抓包结果里面去查找,发现一个url,点击这个url,发现preview里面有好多数据,我第一反应,肯定是每个新闻数据了。看到这些数据里面有两个ID,联想到刚刚访问具体新闻详情页面也有两个数字,肯定,具体新闻页面肯定是https://wap.peopleapp.com/article加上两个ID形成的。于是试了一下拼接一个url访问,果然是。于是乎只要抓到这个url,就能获取到每个新闻的详情页了。 但这个抓到的url只加载了10条,我于是想改改里面的show_num值,发现请求失败,仔细看这个url,有个securitykey这个应该是js根据具体算法算出来的,看了一下那个拼接成url

  • Gradle 如何配置将编译的 JAR 发布到 Archiva 中

    有时候我们希望将我们的jar开发包发布到Archiva中。如何配置Gradle的编译脚本呢?首先你需要启用Gradle的Maven-publish插件。plugins{ id'maven-publish' }复制如上面的代码,你需要确保你的插件已经启用了。然后在脚本中添加下面的代码:publishing{ publications{ maven(MavenPublication){ fromcomponents.java artifactsourcesJar artifactjavadocJar } } repositories{ maven{ credentials{ username'username' password'password' } defreleasesRepoUrl="urltoarchiva" defsnapshotsRepoUrl="urltoarchiva" url=version.endsWith('SNAPSHOT')?snapshot

  • 排序算法Java代码实现(五)—— 快速排序

    本篇内容:快速排序快速排序算法思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码实现:(递归)/** * */ packagecom.cherish.SortingAlgorithm; /** *@authoracer * */ publicclassChapter_6_QuickSortingextendsArrayBase{ /** * */ publicChapter_6_QuickSorting(){ //TODO自动生成的构造函数存根 } /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODO自动生成的方法存根 int[]array=newint[]{3,4,7,9,2,5,1,8,6}; quickSorting(array,0,array.length-1); printArray(array); } /* *通过一趟排序将要排序的数据分割

  • MYSQL8.0.11二进制安装

    Mysql8.0源码编译安装涉及包较多,推荐现在二进制包安装。一、创建用户和组groupaddmysqluseradd-gmysqlmysqlecho"password"|passwd--stdinmysql二、创建目录mkdir-p/data/mysql/tmpmkdir-p/data/mysql/datamkdir-p/data/mysql/dumpsmkdir-p/data/mysql/logmkdir-p/data/mysql/undomkdir-p/data/servers/mysql/etc chownmysql.mysql-R/data/mysqlchownmysql.mysql-R/data/servers/mysql三、下载二进制包https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz四、解压到指定目录tar-zxvf/root/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz-C/data/ser

  • 马尔可夫链文本生成的简单应用:不足20行的Python代码生成鸡汤文

    提到自然语言的生成时,人们通常认为要会使用高级数学来思考先进的AI系统,然而,并不一定要这样。在这篇文章中,我将使用马尔可夫链和一个小的语录数据集来产生新的语录。马尔可夫链马尔可夫链是一个只根据先前事件来预测事件的随机模型。举一个简单的例子:我的猫可能的状态变化。我有一只猫,它一般都是在吃、睡或者玩。它大多时间在睡觉。不过,她偶尔会醒来吃点东西。通常情况下,吃完以后,她会变得很活泼,开始玩玩具,然后她要么回去睡觉,要么再次吃东西(我想他家的猫可能是橘色的)。我的猫的状态可以很容易地用马尔可夫链建模,因为它决定接下来做什么,取决于它以前的状态。它不太可能醒来后马上开始玩,但在她吃完猫粮之后就很有可能开始玩。这些状态转换也可以用状态转换图说明:每个圆圈代表一个状态,箭头指向下一个状态,每个箭头旁边的数字是从一个状态转换到另一个状态的概率。正如你所看到的,状态转变的几率完全基于以前的状态。马尔可夫链的文本生成马尔可夫链文本生成的思想与此相同,即试图找出某个词出现在另一个词之后的概率。为了确定转换的概率,我们用一些例句来训练模型。打个比方,我们可以用下面的句子来训练一个模型。Iliketoea

  • 数据中心运营策略应该随着气候变化而改变

    未来几年,数据中心运营商必须做好更多的准备并对数据中心设施实施更好的保护以应对极端天气事件。诚然,绿色和平组织和各国政府监管机构对数据中心的安全十分关注,但现在更多的数据中心运营商似乎应该更加认真对待气候变化问题及其充当的角色。采用能源效率措施以及一些可再生能源采购模式显然有助于数据中心运营商获得明显的经济效益。而且,数据中心提供商的一些客户已经将可再生能源的运营放在业务运行首要位置,但这些并没有什么坏处。然而,一些数据中心业内人士也认为,新建和现有的数据中心设施如何更好地应对未来的极端天气事件,这需要人们高度关注。例如美国今年发生的飓风和洪水,就引起了当地数据中心运营商的高度警惕和担忧。数据中心设施咨询机构UptimeInstitute首席技术官ChrisBrown日前警告说,风暴和洪水对数据中心运营商来说是一个越来越大的风险,他们应该认真对待。他说:"10年前,人们很少需要面对几十年或百年一遇的极端事件。大部分人认为在他们的职业生涯很难遇到风暴或洪水等大灾难。"Brown认为,强化数据中心设施防止极端天气和洪水并不是运营商面临唯一的问题,运营商还需要在数据中心的

  • Nginx学习之Nginx实战(二)

    文章目录一反向代理二负载均衡其他配置信息proxy_next_upstreamproxy_connect_timeoutproxy_send_timeoutproxy_read_timeoutproxy_upstream_fail_timeout三Nginx动静分离什么是动静分离静态资源的类型动静分离的好处缓存Nginx缓存配置压缩配置信息四防盗链防盗链配置五跨域访问一反向代理nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。proxy_pass既可以是ip地址,也可以是域名,同时还可以指定端口X-Forwarded-For:拿到每一个代理服务器的地址X-Real-IP,一般只记录真实发出请求的客户端IPserver{ listen80; server_namelocalhost; location/{ proxy_passhttp://192.168.11.161:8080; proxy_set_headerHost$host; proxy_set_headerX-Real-IP$remote_addr; proxy

  • 如何停止一个正在运行的线程?

      停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。 在java中有以下3种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期作废的方法。 使用interrupt方法中断线程。 1.停止不了的线程   interrupt()方法的使用效果并不像for+break语句那样,马上就停止循环。调用interrupt方法是在当前线程中打了一个停止标志,并不是真的停止线程。 publicclassMyThreadextendsThread{ publicvoidrun(){ super.run(); for(inti=0;i<500000;i++){ System.out.println("i="+(i+1)); } } } publicclassR

  • 程序员修神之路--kubernetes是微服务发展的必然产物

    菜菜哥,我昨天又请假出去面试了战况如何呀?多数面试题回答的还行,但是最后让我介绍微服务和kubernetes的时候,挂了话说微服务和kubernetes内容确实挺多的那你给我大体介绍一下呗可以呀,不过要请和coffee哦◆◆kubernetes介绍◆◆在很多项目的发展初期,都是小型或者大型的单体项目,部署在单台或者多台服务器上,以单个进程的方式来运行。这些项目随着需求的递增,发布周期逐渐增长,迭代速度明显下降。传统的发布方式是:开发人员将项目打包发给运维人员,运维人员进行部署、资源分配等操作。随着软件行业架构方式的改变,这些大型的单体应用按照业务或者其他维度逐渐被分解为可独立运行的组件,我们称之为微服务。微服务彼此之间被独立开发、部署、升级、扩容,真正实现了大型应用的解耦工作。关于微服务的介绍,大家可以去撸一下菜菜之前的文章:https://mp.weixin.qq.com/s/b7Bd8giwWVNF1CtkaDaVpwhttps://mp.weixin.qq.com/s/BixgyGFrlwZ7wpgDdrmU_g软件开发行业就是这样奇葩,每一个问题被解决之后总是伴随着另外的问题出

  • 处理SQL Server中的重复行

      如果表中的数据需要基于行中的多个值具有唯一约束,则适合的解决方案将是复合健。 复合主键 使用SQLServer语法创建符合主键非常简单。 createtablemy_parts ( id_part1intnotnull, id_part2intnotnull, id_part3intnotnull, primarykey(id_part1,id_part2,id_part3) ) GO复制 在已经存在的表的情况下,通过简单的查询,复合键约束也很容易。 ALTERTABLEmy_parts   ADDPRIMARYKEY(id_part1,id_part2,id_part3); GO复制 但是对于传统的现有系统,当您不允许在正在生产的系统中进行大的更改时,您必须通过简单地找到它们然后从表数据中删除它们来处理重复项。 这可能是一个真正的头痛,特别是如果现有数据对于实时系统运行至关重要 首先要找到重复的东西。 SELECTid_part1, id_part2, id_part3, COUNT(*)AS[count] FROMdbo.my_parts(NOLOCK)G

  • 3*8奥运奖牌计数

    奥运奖牌计数 描述 2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。 复制 输入 输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。 复制 输出 输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。 复制 样例输入 3 103 310 030 复制 样例输出 44311 复制 mycode #include<iostream> #include<cstdio> usingnamespacestd; intmain() { intn; intj,y,t; intsj=0,sy=0,st=0,sum=0; scanf("%d",&n); for(;n>0;n--) { scanf("%d%d%d",&j,&y,&t); sj+=j; sy+=y; st+=t; } sum=sj+sy+st; printf("%d%d%d%

  • VPS/云主机 如何试用远程连接登录主机服务器_

    1.windows主机如何远程登录 点本地电脑开始》运行(或者按"window+R")》输入mstsc点确定 弹出远程连接的框输入IP连接,  如果是VPS,直接输入IP地址即可。如果是弹性云主机,请在这里输入: ip:33890,如118.123.1.1:33890 因为弹性云主机的默认端口是33890,不是3389,所以需要加上端口号。连接上然后输入用户名和密码就可远程登录服务器   2.LINUX主机如何远程登录: ssh登陆,首先下载ssh登陆客户端,我司提供的是putty,下载地址: http://downinfo.myhostadmin.net/putty.exe   (注意:网上流传的中文版有后门,建议直接使用我司提供的英文版) 登陆流程: 1、输入IP地址,如果是共享IP的请输入远程连接的IP 2、输入端口,一般保持默认(22000),如果是共享IP的请输入远程连接的端口 3、点击“打开”。如图: 对应中文说明如图:   输入账号root,输入密码,登陆到linux。如图:   这里是是

  • 设置系统引导项

    命令行mscofig即可设置 

  • python对一个文本的解析

    #定义Tag的签注controlAreaStart="<ControlArea::黄冈>"controlAreaEnd="</ControlArea::黄冈>"entity="<!Entity=黄冈"controlAreaStart="<ControlArea::黄冈>"controlAreaEnd="</ControlArea::黄冈>"baseVoltageStart="<BaseVoltage::黄冈>"baseVoltageEnd="</BaseVoltage::黄冈>"SubstationStart="<Substation::黄冈>"SubstationEnd="</Substation::黄冈>"voltageLevelStart="<VoltageLevel::黄冈>"voltageLevelEnd="</VoltageLevel::黄冈>"bayStart="<Bay::黄冈>"bayEnd="</Bay::黄冈>"br

  • drf : 自动生成路由,视图层自定义方法,路由映射方法,action参数。

    扩展一个知识点:在Django中,代码只要顶格编写,程序一运行,代码将直接执行。 目录drf路由Routers路由router形成URL的方式路由之DefaultRouter()路由之SimpleRouter()DefaultRouter与SimpleRouter的区别是:视图层自定义方法,路由映射方法。action参数:总结: drf路由Routers 自动生成路由需要继承ViewSetMixin子类,重写了as_view()方法。 导入模块: fromrest_frameworkimportrouters 复制 创建router对象,并注册视图集合,例如: router=SimpleRouter() router.register('books',views.BookAPIView) 复制 参数解析: register(prefix,viewset,basename=None) #prefix-该视图集的路由前缀 #viewset-视图集 #basename-路由别名的前缀,默认为None,可以不传,不能重复。 复制 上述代码会形成的路由如下: [ <URLPatter

相关推荐

推荐阅读