SELECT CONCAT('drop table ', group_concat(TABLE_NAME), ';') FROM information_schema.`TABLES` WHERE table_schema = 'db_name' AND TABLE_NAME LIKE 'prefix_%';
客户误删数据库。删了10来条用户。想办法恢复下。从数据库删掉的,只能从数据库这边找了。通过活动记录可以关联到删除用户的ID。有了一丝希望,但不多。没有其他数据做支撑,空有id,啥也不是!网上查了查,mysql 有binlog, 若开启可记录文件操作,insert,update操作。-- 查询binlog开启状态 show variables like 'log_%';使用mysqlbinlog,可以使用 find / -name "mysqlbinlog" 查找这家伙在哪里。直接全部导出太大 可筛选范围 并将 筛选内容 导出到 /www/0907.sql 这个文件中/www/server/mysql/bin/mysqlbinlog --start-datetime="2023-09-07 08:00:00" --stop-datetime="2023-09-07 13:59:59" /www/server/data/mysql-bin.000023 -r /www/0907.sql然后 就可以搜索到 写入
优化一商城列表搜索页,同事发来一篇文章。嗯,搞。加权排序类似于加权平均,有所侧重。在商城中,商品名称,关键词,规格,商品描述等类似于一片片文章。希望名称,关键词的权重高于描述。找到用户更想查询到的数据。SELECT 1 * ( document.w10 + document.w20 + document.w30 ) * ( document.w11 + document.w21 + document.w31 ) AS w, document.* FROM ( SELECT 0, CASE WHEN d.abstracts LIKE '%1%' THEN 2 ELSE 0.1 END AS w10, CASE WHEN d.tags LIKE '%1%' THEN 3 ELSE 0.1 END AS w20, CASE WHEN d.NAME LIKE '%1%' THEN 4 ELSE 0.1 END AS w30, CASE WHEN
group_concat()函数的参数是可以直接使用order by排序的。SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; MySQL中group_concat()函数的排序方法
遇到一个不能为NULL的报错,一个类型为text的字段MYSQL(5.7.38-log - Source distribution)报错mysql #1101 - BLOB, TEXT, GEOMETRY or JSON column 'grading' can't have a default value彻底解决方法通过修改MySQL的配置文件,如果有sql-model就直接修改成:sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,如果没有则在[mysqld]下加上这句话,之后重启mysql。临时解决方法 set sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION (只对当前连接有效)Strict SQL Mode作用 :不为null的字段不能写入null数据。text字段没有默认值自增长的字段不能自定义值参考文章 >>>
风里来
最后,我终于解放了我自己……