首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql删除满足自己某个条件的

大概意思就是删除一个表里的部分数据,这些数据所满足的条件也在自己表里 ,我有点儿晕,直接上代码,这是select出来的,正常流程,如果要删除直接改成delete from …就行了 SELECT * FROM 名...WHERE 统计日期 IN( SELECT DISTINCT 统计日期 FROM 名 WHERE 字段1='data1') AND 字段1 'data1' 真改完了后就是这种 错误代码: 1093...You can't specify target table '名' for update in FROM clause 其实仔细想想逻辑还是有问题的,循环用了同一张,会形成类似于死循环的操作,虽然我们明白这样好像没什么问题...,但是电脑和你不一样, mysql在把子查询结果作为删除中数据的条件,而mysql不允许在子查询的同时删除原数据 解决办法: 方法一、分步骤: 先创建临时 create table tmp(...SELECT DISTINCT 统计日期 FROM 名 WHERE 字段1='data1') 再执行删除 delete FROM 名 WHERE 统计日期 IN(SELECT * FROM tmp

2.7K20

1 监听mysql内容变化,mysql开启binlog

可以看到,只要有了这个binlog,我们就拥有了mysql的完整备份了。 我们时常会碰到这样的需求,就是要监听某个的变化,然后来做一些操作。...如果该数据只增加、不删除修改的话,要监听比较简单,可以定时去查询最新的id即可。但要有删除、修改操作的话,免不了就得全扫描,效率极低。倘若该发生变化时,能触发个事件之类的可供监听,那最好不过。...在/etc/目录下创建一个my.cnf文件,内容是 [mysqld] server_id = 1 log-bin = mysql-bin binlog-format = ROW mysql-bin只是个名字而已...然后通过brew restart mysql重启mysql。再通过mysql -uroot -p命令进入mysql控制台,执行 show variables like '%log_bin%' ; ?...查看第一个binlog文件的内容 show binlog events。 查看指定binlog文件的内容 show binlog events in 'mysql-bin.000004'。

3.4K60
您找到你想要的搜索结果了吗?
是的
没有找到

1 监听mysql内容变化,mysql开启binlog

可以看到,只要有了这个binlog,我们就拥有了mysql的完整备份了。 我们时常会碰到这样的需求,就是要监听某个的变化,然后来做一些操作。...如果该数据只增加、不删除修改的话,要监听比较简单,可以定时去查询最新的id即可。但要有删除、修改操作的话,免不了就得全扫描,效率极低。倘若该发生变化时,能触发个事件之类的可供监听,那最好不过。...在/etc/目录下创建一个my.cnf文件,内容是     [mysqld]     server_id = 1     log-bin = mysql-bin     binlog-format...然后通过brew restart mysql重启mysql。...查看第一个binlog文件的内容 show binlog events。 查看指定binlog文件的内容 show binlog events in 'mysql-bin.000004'。

3.2K10

MYSQL使用mysqldump导出某个的部分数据

MySQLdump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个的部分数据,这时该怎么办呢?...--help    显示一条帮助消息并且退出。    --fields-terminated-by=...    --fields-enclosed-by=...   ...-F, --flush-logs    在开始导出前,洗掉在MySQL服务器中的日志文件。    -f, --force,    即使我们在一个导出期间得到一个SQL错误,继续。   ...从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。    -l, --lock-tables.    为开始导出锁定所有。   ...-t, --no-create-info    不写入创建信息(CREATE TABLE语句)    -d, --no-data    不写入的任何行信息。

6.5K20

线上MySQL某个历史数据的分区笔记

NULL,   PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=47603581 DEFAULT CHARSET=utf8; step0 创建一个结构和原先的一样的...        table: order_his    partitions: p201511,p201512   ### 可以看到这里走的是2015年11和12月,这2个分区 ...........部分内容省略...注意: 当时在线上操作的时候,发现即使做了分区,执行计划里面显示的还是ALL全扫描了,于是根据这个SELECT 加了个索引解决了这个问题。这里没有真实环境不好贴图出来。...step5、替换原先的 通知开发同学当前不要对`order_his`执行查询操作。...table `order_his` to `order_his_nopart`; rename table `order_his_tmp` to `order_his`; 这样的话,新的`order_his`就是分区

1.6K30

MySQL查询某个中的所有字段并通过逗号分隔连接

想多造一些测试数据,中字段又多一个个敲很麻烦,导出中部分字段数据又不想导出ID字段(因为ID字段是自增的,导出后再插入会报唯一性错误),select * 查出来又是所有的字段。...可以通过如下SQL查询中所有字段通过逗号连接,然后复制出来进行select查询再导出 select group_concat(COLUMN_NAME) '所有字段' from information_schema.COLUMNS...where table_name = '名'; 执行效果如下: 下面的语句可以查询某个库中某个的所有字段,字段的名称、类型、字符长度和字段注释等信息 select * from information_schema.COLUMNS...where table_name = '名' and table_schema = '数据库名'; 执行效果如下:

9.4K20
领券