超级管理员

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    317
超级管理员

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    566
超级管理员

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    514
超级管理员

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    553
超级管理员

一、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    443
超级管理员

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    457
超级管理员

显示所有重复数据分组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    471
超级管理员

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

2021-01-20    MySQL    503
超级管理员

商品库存肯定是很有限的,如何控制库存不让出现超买是一个非常重要的问题。事务是控制库存超卖的必要不充分条件。举例:总库存:4个商品请求人:a、购买1个商品 b、购买2个商品 c、购买3个商品程序如下:beginTranse try{ result = db- query('select amount from s_store where postID = 12345'); if(result- amount 0){ //quantity为请求减掉的库存数量 db- query('update s_store set amount = amount - qua

2021-01-20    MySQL    1256
超级管理员

tags字段是逗号隔开tag id。查询一select i.id, i.title, i.tags, (select GROUP_CONCAT(tb_tag.title SEPARATOR ',') from tb_tag where id in (i.tags) ) as tags_title from tb_item as i; 结果:查询二select i.id, i.title, i.tags, (select GROUP_CONCAT(tb_tag.title SEPARATOR ',') fro

2021-01-13    MySQL    542
随机推荐
Hls.js 播放 m3u8
mint-ui中的cell无法绑定原生事件
ffmpeg 拼接视频报错,Found duplicated MOOV Atom. Skipped
SQLite目前还不支持drop column
SQLite数据库的id字段,怎么设置成从1开始自增
thinkcmf文章列表 获取子分类的所有文章
PS笔记
Android Studio打开新项目卡在Gradle的问题
npm err Cannot read property '0' of undefined
CSS实现图片模糊
QQ号

微信联系我

夜间模式切换
回到顶部