概述
1. FIND_IN_SET(str,strlist)
str 要查询的字符串,strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
如果str不在strlist 或strlist 为空字符串,则返回值为 0 。
如任意一个参数为NULL,则返回值为 NULL。
这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
2. substring_index()函数
substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
示例:
如 str=www.baidu.com
则 substring_index(str,‘.’,1) 处理的结果是:www
substring_index(str,‘.’,2) 得到的结果是:www.baidu
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容,相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容。
如:
substring_index(str,‘.’,-2) 得到的结果为:baidu.com
如果要中间的的 baidu 怎么办?
很简单的,需要从两个方向截取:
先截取从右数第二个分隔符的右边的全部内容,再截取从左数的第一个分隔符的左边的全部内容:
substring_index(substring_index(str,‘.’,-2),‘.’,1);
3. locate(substr,str), locate(substr,str,pos)函数
第一个语法返回substr在字符串str 的第一个出现的位置。第二个语法返回子符串 substr 在字符串str,从pos处开始的第一次出现的位置。如果substr 不在str 中,则返回值为0 。
select locate("bai","www.baidu.com") ; //返回5
//可以在sql作为条件
and locate(str,"www.baidu.com")>0
4. 查找某数据库下各个表的占用存储大小。
select
table_schema as '数据库',
table_name as '表名',
table_rows as '记录数',
truncate(data_length/1024/1024, 2) as '数据容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
where table_schema='查找的数据库名'
order by data_length desc, index_length desc;
5. 新导入的数据库报The user specified as a definer (‘designChangeFormal’@‘%’) does not exist 错误
解决办法:
->grant all privileges on *.* to designChangeFormal@"%" identified by ".";
->FLUSH PRIVILEGES;
最后
以上就是迷人蜜蜂为你收集整理的Mysql记录的全部内容,希望文章能够帮你解决Mysql记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复