一、在mysql更新语句中使用乘法:
->update([
'status' => Db::raw('`status`*(-1)'), //status值为1和-1,代表相反的状态
]);
二、判断字符是否在另一个字符串中出现:
$groups['rules']='1,3,5,7,9';
//有漏洞,比如权限值为2,权限组中有21会判断有2的权限:
->field('instr(\''.$groups['rules'].'\',rule_number) as ischecked')
//应改成FIND_IN_SET();
->field('FIND_IN_SET(rule_number,\''.$groups['rules'].'\') as ischecked')
参考链接:mysql中find_in_set()函数的使用--https://www.cnblogs.com/xiaoxi/p/5889486.html。
三、mysql中if函数用法及时间戳转换日期格式:
->field('if(p.status=0,"否","是") as status,from_unixtime(p.create_time) as time');
参考链接:MySQL函数大全及用法示例 https://www.cnblogs.com/xuyulin/p/5468102.html
四、mysql的查询中怎么截取字符串:
-
从左开始截取字符串left(str, length);
-
从右开始截取字符串right(str, length);
-
截取字符串substring(str, pos, length),说明:substring(被截取字段,从第几位开始截取,截取长度);
-
按关键字截取字符串substring_index(str,delim,count),说明:substring_index(被截取字段,关键字,关键字出现的次数)。
->join('city c','substring_index(substring_index(user_area,\',\',2),\',\',-1)=c.c_id')
参考链接:https://zhidao.baidu.com/question/1757749164112887508.html
五、mysql批量修改表前缀:
1、先登入你的Navicat for mysql中,新建查询,在查询编辑器内执行命令:
Select CONCAT('ALTER TABLE ', table_name, ' RENAME TO ', table_name,';' )
FROM information_schema.tables
Where table_name LIKE 'wp_%';
得到结果多条结果:
ALTER TABLE table_name RENAME TO table_name;
2、复制上面的结果到记事本,将TO wp_批量替换成TO cool_wp
3、再复制记事本的内容,粘帖到查询编辑器内,执行命令即可。
参考链接:https://blog.csdn.net/forest_fire/article/details/50944231
如此文章对你有帮助,请打开支付宝搜索519185524,领取马云的红包,使用余额宝消费可抵扣,大家好,才是真的好。