TP5数据库操作整理

一、在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的查询中怎么截取字符串:

  1. 从左开始截取字符串left(str, length);

  2. 从右开始截取字符串right(str, length);

  3. 截取字符串substring(str, pos, length),说明:substring(被截取字段,从第几位开始截取,截取长度);

  4. 按关键字截取字符串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,领取马云的红包,使用余额宝消费可抵扣,大家好,才是真的好。

猜你喜欢

转载自blog.csdn.net/qq_41962562/article/details/82262121