MySQL中字符串函数的详解

零下一度
发布: 2017-07-17 11:01:44
原创
1537人浏览过

今天在论坛中看到一个关于mysql的问题,问题如下

good_id       cat_id
12654         665,569
12655         601,4722

goods_id是商品id
cat_id是分类id
当我,怎么根据这种分类ID查数据(一个商品有多个分类,而且用逗号隔开了)
我现在用的是like 这样的话,输入一个分类id是688,或者4722都能出来这个商品,但输入一个722也出来这个商品了。

 

如果用like做的话,肯定会有问题的,我的开始的想法是,把cat_id里面的字符串换成数组,这样可以利用mysql里面的in操作,这样就不会出现查找722,而4722类别下的产品都跑出来了。我从网上找了半天,这方面的字符串操作函数,没找到,不过我发现了find_in_set这个函数虽然不能,将字符串转换成数组,但是也不会出现上面的情况。我发现自己有好多函数不知道,所以我从手册中,以及网上收集了半天,做了一些例子。

 CHAR_LENGTH(str) 返回str的字符数

LENGTH(str) 返回str的字节长度

CONCAT(str1,str2....) 返回参数str1,str2....的拼接,有一个null值则返回null

CONCAT_WS(x,str1,str2...)   ---concat with separator  第一个参数x代表分隔符,后面的参数为字符串

如果x为NULL则返回NULL,如果字符串有NULL会被忽略

INSERT(s1,x,len,s2) 字符串替换  s1 目标字符串   x为s1的开始位置(下标从1开始) len为x之后的长度 s2为需要替换的字符串

如果x超过s1的长度下标,则返回s1,如果len大于x之后剩余字符串长度,则全部替换

LOWER(str)、LCASE(str) 字符串转为小写

UPPER(str)、UCASE(str) 字符串转为大写

LEFT(str,n) 返回字符串str最左边的n个字符

RIGHT(str,n) 返回字符串str最右边的n个字符

 LPAD(s1,len,s2) 返回s2从s1的左边填充直到总长度为len,如果len<s1的长度,则s2不填充,返回s1从左开始的len长度字符

RPAD(s1,len,s2) 返回s2从s1的右边填充直至len的长度,如果len<s1的长度,则s2不填充,返回s1从左开始的len长度字符

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44
查看详情 怪兽AI数字人

LTRIM(S) 删除左侧的空格  RTRIM(s) 删除右侧的空格  TRIM(s) 删除两侧的空格

TRIM(s1 FROM s2) 删除s2两端出现的s1字符串

REPEAT(s,n) 返回n个s组成的字符串,n<=0,返回空;s或者n为NULL,返回NULL

SPACE(n) 返回n个空格字符串

REPLACE(s,s1,s2) 返回--由s2替换s中的所有s1字符串的结果

STRCPM(s1,s2) s1==s2 返回0   s1<s2 返回-1  s1>s2 返回1

SUBSTRING(s,n,len) 、MID(s,n,len)返回s从n开始的len长度的字符串 ,若n<0,则从s的最后倒数n个开始截取,n=0的话返回空字符串;len可以省略-截取n之后的所有字符

LOCATE(str1,str2)、POSITION(str1 IN str2)、INSTR(str2,str1) 返回str1在str2中出现的开始位置

REVERSE(s) 返回s的字符串的反转

ELT(n,str1,str2,str3...)   返回str1,str2..  中的第n个字符串  ,n超出返回返回null

FIELD(s,str1,str2,str3....) 返回s在str1,str2.....中的第一次出现的位置,没有返回0

 

FIND_IN_SET(s,str1)  返回s在str1中的出现的位置,其中str1由多个字符串组成,逗号隔开的列表

 

以上就是MySQL中字符串函数的详解的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号