文章表中,tags 字段存储着一个或者多个标签,标签之间使用“,”隔开,比如,一篇文章的 tags 字段是 “前端,JavaScript,SCSS,HTML”,现在想删除“JavaScript”,变成 “前端,SCSS,HTML”。方法如下:UPDATE tb_article AS a SET a.tags=TRIM(BOTH ',' FROM REPLACE(concat(',',a.`tags`,','), ',JavaScript,', '')) WHERE FIND_IN_SET('JavaScript', a.tags);
核心部分是:UPDATE tb_article AS a S
例子:select
SUBSTRING_INDEX(thumbnail,'/',-1) as file_name,
thumbnail,
SUBSTRING_INDEX(thumbnail,'.',-1) as suffix,
from tb_article where thumbnail != '';
介绍:这里用到 MySQL 的 SUBSTRING_INDEX(str,delim,count) 函数,LENGTH(str) 函数,REPLACE(str,from_str,to_str) 函数,和数据库的一张辅助表help_topic(这张表在默认的mysql库里)。SUBST
MySQL 使用用 insert 插入数据时,为了不重复插入,往往先查询一下数据,若不存在才进行插入操作。当数据库中存量数据较多时,或者是在批量插入操作时,很容易出现插入重复数据的问题。解决方法:在 MySQL 中,当存在主键冲突或唯一键冲突的情况下,根据插入策略不同,有以下三种避免方法:insert ignore into:若没有则插入,若存在则忽略replace into:若没有则正常插入,若存在则先删除后插入insert into ... on duplicate key update:若没有则正常插入,若存在则更新注意,使用以上方法,需要表中有一个 PRIMARY KEY 或 UNIQ
使用 MySQL 线程池对压力测试的影响,下面使用两个文件,分别测试一下。代码:test1.js 使用了 MySQL 线程池:export async function test1(ctx) {
let pool = dbUtil.getPool();
let connection = await pool.getConnection();
let [rows] = await connection.query('select * from tb_user limit 10');
connection.release();
}
test2.js 未使用 MySQL 线程池:export
DATE_FORMAT(date, format)DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。format 参数的格式有:%a Everyday name in Shortened form [Sun–Sat].
%b Month name in Shortened form [Jan – Dec].
%c Name of Month in numbers [0 – 12].
%D Daytime of the month in a numeric form, trailed by suffix [like 1st, 2nd, …].
%d Daytime of the
between...and(推荐)SELECT * FROM tb_code WHERE expired_at BETWEEN '2021-01-01 00:00:00' AND '2021-12-31 23:59:59';
大小于号SELECT * FROM tb_code WHERE expired_at '2021-01-01 00:00:00' AND expired_at '2021-12-31 23:59:59';
转换为比较,create_time若加了索引,不走索引SELECT * FROM k_student WHERE UNIX_TIMESTAMP(create_t
MySQL 中,不可直接修改数据库名称。有一种变通的方式如下:如果有一个数据库名称是 “old_database”,想把这个数据库的名字改成 “new_database”;首先创建一个新的数据库 “new_database”create database new_database;
获取所有源库的表名use information_schema;
select table_name from TABLES where TABLE_SCHEMA=’old_database’;
然后按照以下命令一个个修改rename table old_database.[tablename] to new_da
SELECT id,title FROM tb_item GROUP BY id
SELECT id,title,count(*) AS counter FROM tb_item GROUP BY id
counter 实际上是每组的计数统计分组后的数据,应该使用这样的子查询:select count(*) from (select count(*) FROM service GROUP BY name,service) t
实例:var replacements = {tags:"11,12,13"}
var sql = `
SELECT id,tags,title,r.*
一、concat()函数concat(str1, str2,...)
将多个字符串连接成一个字符串。返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。例子:select concat (id, title, counter) as info from tb_user;
select concat (id, ',', title, ',', counter) as info from tb_user;
二、concat_ws()函数concat_ws(separator, str1, str2, ...)
和concat()一样,将多个字符串连接成一个字符