admin

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

2022-07-11 MySQL 327
admin

方法一,await conn.query(`START TRANSACTION`); await conn.execute(`INSERT INTO user VALUES (?, ?, ?, ?, ?, ?)`, [...userDetails]); await conn.execute(`INSERT INTO account VALUES (?, ?, ?, ?, ?, ?)`, [...accountDetails]); await conn.query(`COMMIT`); START TRANSACTION 和 COMMIT 不可以使用 conn.execute,MySQL lim

2022-06-15 MySQL Node.js 86
admin

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

2022-03-27 MySQL 405
admin

1,数据库中间表一般,使用下划线连接两个表作为中间表表名(table1_table2)。比如,表前缀是tb,表 tb_article 和 tb_tag 的中间表的表名就应该是 tb_article_tag。有时候可以把表命名为 "tb_article_tag_relation" 来突出一个表是中间表。2,在项目简单的时候,这种命名方式是没有问题的。如果复杂一点, 一个文章表 tb_post,和一个文章的类型表 tb_post_type,按照上面方式命名方式,就会出现 tb_post_post_type 这样的奇葩表名。看到有人使用双下划线“__”或者“_to_“连接两个表,比如“tb_post

2022-02-16 MySQL 1072
admin

1, MySQL生成随机数的函数 RAND()select RAND(); 0.10994928061026081 2, 获取上面那个随机数以后,便可以通过 CEILING() 向上取整 或 FLOOR() 向下取整,以获取随机整数。 例子:-- 生成 3 位的随机数 SELECT CEILING(RAND()*900+100); -- 生成 4 位的随机数 SELECT CEILING(RAND()*9000+1000); -- 生成 5 位的随机数 SELECT CEILING(RAND()*90000+10000);

2021-05-18 MySQL 779
admin

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.*

2021-04-11 MySQL 634
admin

一、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()一样,将多个字符串连接成一个字符

2021-04-10 MySQL 491
admin

MySQL手册中find_in_set函数的语法:FIND_IN_SET(str,strlist) str 要查询的字符串strlist 字段名 参数以”,”分隔 如 (1,2,6,8)查询字段(strlist)中包含(str)的结果,返回结果为null或记录假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 一个字符串列表就是一个由一些被 ‘,’ 符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则FIND_IN_SET() 函数被优化,使用比特计算。 如果str不在strlist 或strlist

2021-04-10 MySQL 558
admin

显示所有重复数据分组SELECT origin_id FROM topk88_product GROUP BY origin_id HAVING count(*) 1 删除所有重复DELETE FROM topk88_product WHERE origin_id IN ( SELECT origin_id FROM topk88_product GROUP BY origin_id HAVING count(*) 1 ); 提示:You can't specify tar

2021-03-17 MySQL 519
admin

1,DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。2,表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。3,Truncate table 表名 速度快,而且效率高,因为: truncate table 在功能上与不带 WHE

2021-01-20 MySQL 562
ngtwewy
随机推荐
Nginx NJS 模块,在 Nginx 中运行 JavaScript
MySQL的外键总结
CSS 媒体特性 prefers-color-scheme
关于字符的一些基础知识
WordPress 中如何在主题和插件中使用
CSS实现按钮的特效:流光按钮,冷光按钮
MySQL 的 sql_mode 模式介绍:为什么 MySQL 中 int,float,double 类型字段插入空字符时自动转为0
如何创建一个NPM Package
Rollup 教程
TypeScript 和 Koa 实践

微信联系我

夜间模式切换
回到顶部