delete from tb_news where id not in ( select max(id) From tb_news Group By title ) 刚开始用这条语句删除一直不成功 然后百度了一下,说是要建立一张临时表 于是进行了以下操作 先建立一个临时表 CREATE TEMPORARY TABLE tmp_news ( `id` ) ) 然后执行以下语句 delete from tb_news where id not in (SELECT * from ( select m…
问题描述:   用PHP向MySql数据库中修改数据,实现增删改(数据库能正确连接) 经测试,代码只能对数字进行正常的增删改操作,非数字操作无效   但要在课程名称中输入中文,应该如果修改呢?   存在问题的代码主要是:  $sql = mysql_query("insert into kcb values($kch,$kcm,$kkxq,$xs,$xf)");      数据库的数据:   代码(代码是正确的)如下: <?php     if (isset($_POST[&qu…
mysql中的union操作(整理) 一.总结 一句话总结: union两侧的字段数和字段类型要是一样的 union可以接多个 orderby和排序可以在最后的union组合之后 1.union简单实例? SELECT country FROM Websites UNION SELECT country FROM apps ORDER BY country; 2.UNION和UNION ALL的区别是什么? UNION 语句:用于将不同表中相同列中查询的数据展示出来:(不包括重复数据) UNIO…
MySQL中truncate误操作后的数据恢复案例 这篇文章主要介绍了MySQL中truncate误操作后的数据恢复案例,主要是要从日志中定位到truncate操作的地方然后备份之前丢失的数据,需要的朋友可以参考下 实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入. 这里为了简单说明,只拿弄一个简单的业务场景举例. 测试环境: Percona-Server-5.6.16日志格式: mixed 没起…
博客已搬家,更多内容查看https://liangyongrui.github.io/ Mysql中交换行操作 leetcode的一道题目 参考:https://leetcode.com/problems/swap-salary/description/ 给你一个表 id name sex salary 1 A m 2500 2 B f 1500 3 C m 5500 4 D f 500 把sex的m和f交换,只能用一次update UPDATE salary SET sex = CHAR(AS…
mysql中的分页操作结合python --分页: --方式1: ;-- 读取十行 , --从第十行读取 往后再读十行 --方式2: offset ; --从第二十行开始读取10行 -- 结合python 分页: page = input('请输入要查看的页码') page = int(page) ;…
mysql中的正则操作 匹配手机号,匹配中文,替换 正则匹配hy_user表内tel字段的电话号码: SELECT * FROM hy_user WHERE tel REGEXP "[1][35678][0-9]{9}" SELECT tel FROM hy_user WHERE tel REGEXP "[1][35678][0-9]{9}" SELECT tel FROM hy_user WHERE tel REGEXP "^[1][35678][0-9…
问题描述: 当我插入一条记录时,在调用save方法的时候出现了异常(记录重复了),导致了后面的commit语句不能执行了.这时我在数据库中删除重复记录时发现该表已经被锁上了.即出现错误.但过了一会再次执行delete,就能成功删除记录了. 原因分析: 由于commit语句没有执行到,即事务没有提交成功,表还是被锁着的.只能等锁超时了,才能再次执行delete等操作. 解决办法: 1.遇到问题后可以kill掉对应的线程再次执行delete等操作. 2.为避免问题出现,可以开启mysql中的auto…
一.插入数据 1.1使用insert...values语句插入 语法:insert   [low_priority|delayed|high_priority](优先级问题,ow_priority是指降低insert和delecte以及update的优先级吗,选择delayed是指将插入消息放入到一个缓冲区中等到表空闲时在插入,high_priority是指insert和select语句优先执行)  into 表名(字段名...)   values (值....) 实例: 首先创建一个表如下:…
------------恢复内容开始------------ 创建数据库 create database 数据库名 切换数据库 use 数据库名 建表: create table 表名 ( 字段名1,类型,约束 字段名2,类型,约束 ... ) 约束: 1.主键约束 1)直接在建表时字段类型后加 primary key 2)在表最后加 constraint 约束名 primary key(字段名) 3)表外修改 alter table 表名 add constraint 约束名 primary…
order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路. 问题: 网页要实现table的行鼠标拖拽排序,我用AngularJs集成了一个TableDnD开源插件,可以实现,然后在数据库表中增加一个排序字段indexId,但是原来的大量数据是没有排序过的,所以该字段为null. 这样order by时,为null的数据就会排在最前边. 写个测试表模拟一下,如下效果: 解决办法: 最优办法:利用MySQL中的一…
删除操作比较特殊,不能通过Workflow Rule和Process Builder,Validation Rule来Check和相应做后续操作. 目前调查只有两种工具可以监听到删除操作: Apex Trigger Apex Trigger 有 before delete,after delete两种类型 before delete:可以支持根据条件,阻止用户删除这条记录,还可以弹出可定制内容的错误信息. after delete:可以对所有表做CRUD操作 Flow Builder Flow…
SELECT在mysql中是查询表中的数据的作用,但也可以在查询的时候直接进行运算,然后返回查询后的结果 比如 )) FROM username2 其中的IFNULL函数是对adven数据进行判断,若adven中的数据不为NULL,则返回adven本身的数据,若为NULL,则返回0. 其它+,-,/的运算也可以如同上面的代码进行替换而已. 更多函数 函数 描述 AVG(column) 返回某列的平均值 COUNT(column) 返回某列的行数(不包括 NULL 值) COUNT(*) 返回被选…
背影如下: 表名,WFGTEST create table WFGTEST ( NAME1 ) not null, NAME2 ), CAPACITY ,) ) 表结构如下: NAME1 NAME2 CAPACITY wfg wfg 1.000 qq qq 1.000 lxx lxx 2.000 wly wly 2.000 现在想实现的效果如下: 如果这个表里相同的CAPACITY都被删除完时,向另一个表里插入一个计数, 如1.000被全部删除完时,向另一个表里插入记录如下,也就是说DELETE…
查询mysql中事务提交的情况: show variables like '%commit%'; 可以查看当前autocommit值 在mysql数据库中它的默认值是"on"代表自动事务. 自动事务的意义就是:执行任意一条sql语句都会自动提交事务. 测试:将autocommit的值设置为off 1.set autocommit=off 关闭自动事务. 2.必须手动commit才可以将事务提交. 注意:mysql默认autocommit=on oracle默认的autocommit=o…
CREATE TABLE `poision` ( `username` varchar(20) NOT NULL , `nowtime` varchar(50) NOT NULL , `poision` varchar(255) NOT NULL , `latitude` double NOT NULL , `longtitude` double NOT NULL , PRIMARY KEY (`username`, `nowtime`) ) ; 删除表操作: DROP TABLE IF EXI…
1.创建修改表时,为datetime字段设置当前时间为默认值 CREATE TABLE `NewTable` ( `id` int(11) NOT NULL AUTO_INCREMENT , `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `last_modified` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TI…
简单表操作 1.表操作之修改表 .修改表名 alter table 表名 rename 新表名 .增加字段 alter table 表名 add 新字段名 数据类型[相关约束性条件...], add 新字段名 数据类型[相关约束性条件...]; alter table 表名 add 新字段名 数据类型[相关约束性条件...] first; alter table 表名 add 新字段名 数据类型[相关约束性条件...] after 字段名; .删除字段 alter table 表名 drop 字…
在做AP发票审批驳回时,客户要求必须强制输入拒绝原因,代码如下: PROCEDURE Validate_Response ( Itemtype IN VARCHAR2, Itemkey IN VARCHAR2, Actid IN NUMBER, Funcmode IN VARCHAR2, Resultout IN OUT VARCHAR2 ) IS l_Nid NUMBER; l_Approval_Comments VARCHAR2(2000); l_Next_Appr_Level NUMBER…
标题不能描述的很清楚,下面具体说所我要描述的问题,和解决的办法. 作为SQL小白一枚,近日在写一段代码,代码如下: 报错显示 变量@vv附近错误. 后来经过了解,原来是因为,这样需要使用 动态SQL去解决: 解决办法如下(请注意两幅图的不同之处): 第一次接触 所谓的动态SQL,博主也是照猫画虎的解决了该问题. 如果有大神对于 动态SQL 比较了解,请留言指教.或者说明下,为什么第一幅图中的那种表示方法不可以?…
如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3_6=b.f07_1,a.gk07_4_6=b.f08_1  where   substring(a.gk01,1,4) in ('5323') and a.gk01=b.gk01 and dqdm='532300' 如果漏掉了where会怎么样: UPDATE hzxm201610 a,xmhzy…
先从一个简单的SQL说起 当前week的第一天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY): DATE_SUB() 函数从日期减去指定的时间间隔.DATE_SUB(date,INTERVAL expr type) date 参数是合法的日期表达式.expr 参数是您希望添加的时间间隔.type 参数可以是下列值: MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUART…
研发在早期的设计中,由于设计方面的问题,导致在设计表结构的时候,有个表有非空唯一索引而没有主键 在InnoDB存储引擎中,如果没有主键的情况下,有非空唯一索引的话,非空唯一索引即为主键. 那么这就会有个问题存在 应用在更新表的时候,用了 update aaaa ) ) 用了ID作为条件,修改,高事务并发下,可能会同时发生这种事务,由于id并没有任何索引,故此,表会被全锁,也就是全表.那么如何避免这个问题.我们线上的数据 暂时还不是很大,故此 drop index idx_aaa_unique o…
USE UFSystem go DECLARE @cUser_Id NVARCHAR(20) SET @cUser_Id='用户的登录名' DELETE l FROM dbo.UA_TaskLog l INNER JOIN dbo.ua_Task t ON t.cTaskId = l.cTaskId WHERE t.cUser_Id=@cUser_Id DELETE FROM dbo.ua_Task WHERE cUser_Id=@cUser_Id…
我这个错误的原因在于,把map的键写错了,它必须和类名第一个字母小写相同 @ModelAttribute public void getEmployee(@RequestParam(value="id",required=false) Integer id, Map<String, Object> map){ if(id != null){ map.put("employee", employeeDao.get(id)); //这里的键必须和类名第一个小…
删除远程主机上MySQL中的一个数据库时,远程主机一直在响应,无法正常删除. 这个问题的解决办法如下:在远程主机上登录MySQL,执行show full processlist;观察state和info两列,查看有哪些线程在运行.经过查询发现之前远程删除的时候由于网络中断,锁表了.所以导致再次登录的时候删除操作无响应.这时候只要使用kill命令+对应线程前面id,将线程结束掉,就可以正常删除了. REF: https://blog.csdn.net/cccheer/article/details…
背景: 1.有一个定时任务,每10分钟入一批统计数据: 2.另一个定时任务,每天定时清理7天前数据,此定时任务每天01:18:00执行: 现象: 每天01:20:00的统计数据入库失败,异常信息如下,其他时间点均无问题: 分析: 1.按异常信息显示,插入数据时,等待锁超时,mysql事务锁等待时间默认为50秒,出现此问题,说明向此表写入数据时,有其他线程将表锁住了. 2.每天只在01:20:00的统计时,等待锁超时,而其他时间点没有问题,怀疑与定时任务有关. 3.搜索代码,每天01:20:00左…
原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言: DDL的一部分功能约束 约束:包括主键,外键,唯一键,条件,非空,事务等各类约束 视图定义:即虚表,就是存储下来的SELECT语句 事务控制 嵌入式SQL和动态SQL 数据字典:系统编目(system catalog) 作用:保存数据库服务器上的元数据 保存元数据的数据库有: information_sche…
前言 MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slow query log) 6:一般查询日志(general log) 7:中继日志(relay log). 其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义. 一.重做日志(redo log) 作用: 确保事务的持久…