![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
数据库
halo0623
这个作者很懒,什么都没留下…
展开
-
Cast(字段名 as 转换的类型 ) 转换类型
一、语法Cast(字段名 as 转换的类型 )转换的类型:CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intTIME 时间型二、用法表tbl_userdate:2018-11-03 15:31:26例1select cast(date as signed) as date from tbl_user;结果如下:date:20181103153126例2select cast(date as转载 2020-07-23 18:45:53 · 1613 阅读 · 0 评论 -
mysql在查询结果列表前添加一列递增的序号列(最简)
SELECT @rownum:=@rownum+1 AS 序号, t_user.* FROM t_user ,(SELECT @rownum:=0) r -- 最简写法1更多写法供参考: ① select (@rowNO := @rowNo+1) AS rowno,uid,uname from (SELECT * FROM t_user ) ; ② select (@rowNO := @rowNo+1) AS rowno,a.* from (SELECT * FROM t_user)转载 2020-07-02 18:21:38 · 1813 阅读 · 0 评论 -
Union和Union All的区别
假设我们有一个表Student,包括以下字段与数据:drop table student;create table student(id int primary key,name nvarchar2(50) not null,score number not null);insert into student values(1,'Aaron',78);insert into student values(2,'Bill',76);insert into student values(转载 2020-07-02 18:16:24 · 177 阅读 · 0 评论 -
MySQL多表关联删除数据
今天在做删除单个program时,此program可能关联多个表,需要将记录一起删除。本来以为只能每个表去分别删除,后来了解到MySQL可以多表关联删除数据。详解1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除 掉DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉DELETE t1 FROM t1原创 2020-06-10 16:25:31 · 3254 阅读 · 0 评论 -
Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践
今天碰到的需求:用户重新录音时需要重新修改数据库里的信息。之前的做法是:先将之前的数据删除,再把新数据保存到表里。改进方法:运用Mysql中INSERT … ON DUPLICATE KEY UPDATE语句具体sql:<insert id="insertWordRecording">INSERT INTO kid_big_cat_course_word_recording(...原创 2020-04-03 15:09:14 · 114 阅读 · 0 评论 -
后台服务优化-通过触发器清除Redis数据
今天需要优化单本书的阅读动态,逻辑就是:当用户在新增动态,修改动态的状态,删除动态时都要通过触发器将缓存清除,程序里先从Redis里取数据,如果不存在,则从数据库里查询数据并缓存到Redis。// 触发器设置:kid_book_comment_after_insertIF new.status=0 THEN SET v_ret = redis_command_v2('DEL', CONCA...原创 2020-04-02 19:16:36 · 249 阅读 · 0 评论 -
后台服务优化-通过MySQL触发器将数据缓存到Redis
开发网站过程中,每当修改海报时,通过触发器自动将新的海报缓存到Redis,运用mysql2redis(一个可以在mysql中操作redis的插件)1、建立存储过程cache_poster_to_redis(),将所需字段拼接成json字符串保存到Redis中。BEGIN DECLARE v_json VARCHAR(4000); DECLARE v_redis_ret INT; SEL...原创 2020-04-02 19:11:14 · 485 阅读 · 0 评论 -
通过建立索引优化SQL语句
最近开发网站服务,有一些服务访问速度非常慢,所以通过建立索引的方式优化了一些服务。以下是具体sql:通过explain分析sql索引使用情况,发现没有使用到索引。建立索引idx_booklist_id_approval_count_create_time,之后在通过explain分析,最后成功使用到索引,优化成功。...原创 2020-04-02 18:57:04 · 368 阅读 · 0 评论 -
Mysql编写存储过程(使用游标cursor)
1. 需求:计算话题下全部内容的收藏总数话题收藏数 = 日志收藏数+问题关注数+回答收藏数+想法收藏数+话题关注数2. SQLBEGIN DECLARE done INT DEFAULT FALSE; -- 遍历数据结束标志 DECLARE favorite_count INT; -- 收藏数 DECLARE v_id INT; -- id DECLARE c...原创 2020-04-02 18:48:12 · 476 阅读 · 0 评论 -
mysql函数LOCATE、POSITION和INSTR
大家在Mysql中判断某个字段是否包含某个字符串时,都会用这样的语法:SELECT `column` FROM `table` where `condition` like `%keyword%’事实上,可以使用 locate 和 instr 这两个函数来代替SELECT `column` from `table` where locate(‘keyword’, `condition`)...转载 2020-01-14 16:05:10 · 653 阅读 · 0 评论 -
sql查询一个字段中包含逗号","的个数
业务中要查询出正确选项的个数,数据库中是用逗号分割的, 也就是要查询出包含逗号的个数,再加一就好了最后用length()函数解决了这个问题含义就是: 查询字段的长度 减去 用空白替换逗号之后的该字段的长度 加一LENGTH(right_option_picture_codes)-LENGTH(REPLACE(right_option_picture_codes,',',''))+1...原创 2020-01-10 11:30:49 · 6170 阅读 · 0 评论