1. 关联表更新
mysql关联多表进行update更新操作
UPDATE Track INNER JOIN MV ON Track.trkid=MV.mvid SET Track.is_show=MV.is_show WHERE trkid<6
等同于
UPDATE Track,MV SET Track.is_show=MV.is_show WHERE Track.trkid=MV.mvid and trkid<6
实例:
UPDATE erp$pro$category_mapping cm JOIN erp$pro$category_operation co ON cm.category_operation_id = co.category_id SET cm.STATUS = 2 WHERE (co.category_path LIKE '12/%' OR co.category_id = 12) ;
参考文章:http://blog.sina.com.cn/s/blog_4c197d420101aer2.html
2. 关联表删除
DELETE cm FROM erp$pro$category_mapping cm JOIN erp$pro$category_operation cp WHERE cp.channel_id = 11 AND cp.LEVEL <> 1;
3. 更新条件where in条件中有子查询时的写法
UPDATE erp$pro$sku_channel_relation SET STATUS = 1 WHERE product_sku_id IN ( SELECT product_sku_id FROM ( --(where条件有子查询无法更新的解决办法) SELECT DISTINCT t.product_sku_id FROM erp$pro$product_sku t JOIN erp$pro$product p ON t.product_id = p.product_id WHERE t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN (SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2) ) tt ) AND channel_id = 9 AND STATUS = 2;
最开始我定成如下SQL时总是报Error Code:1093错误:
UPDATE erp$pro$sku_channel_relation SET STATUS = 1 WHERE product_sku_id IN ( SELECT DISTINCT t.product_sku_id FROM erp$pro$product_sku t JOIN erp$pro$product p ON t.product_id = p.product_id WHERE t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN (SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2) ) AND channel_id = 9 AND STATUS = 2;
4. 关联表更新条件中有子查询时写法
UPDATE erp$pro$sku_channel_relation a JOIN erp$pro$product_sku t ON a.product_sku_id=t.product_sku_id JOIN erp$pro$product p ON t.product_id = p.product_id SET a.STATUS = 1 WHERE a.channel_id=9 AND a.STATUS = 2 AND t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN ( SELECT product_sku_id FROM ( --In 查询方式的解决办法 SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2 ) tt );
最开始的写法,没有在子查询外再包一层查询的时候总是报Error Code:1093错误:
UPDATE erp$pro$sku_channel_relation a JOIN erp$pro$product_sku t ON a.product_sku_id=t.product_sku_id JOIN erp$pro$product p ON t.product_id = p.product_id SET a.STATUS = 1 WHERE a.channel_id=9 AND a.STATUS = 2 AND t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN ( SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2 );
关联表更新例子
UPDATE erp$act$activity_sku acts JOIN ( SELECT p.brand_id, p.mft_id, pc.category_id, ps.sku_number FROM erp$pro$product p JOIN erp$pro$product_sku ps ON ps.product_id = p.product_id JOIN erp$pro$product_category pc ON p.product_id = pc.product_id JOIN erp$act$activity_sku ask ON ask.sku_number = ps.sku_number WHERE ask.sku_number IS NOT NULL ) t ON acts.sku_number = t.sku_number SET acts.brand_id = t.brand_id , acts.mft_id = t.mft_id, acts.category_id = t.category_id
MySQL 1093错误参考文章:http://www.2cto.com/database/201308/236323.html
相关推荐
MySQL 批量更新的高效方法 MySQL 批量更新是指在 MySQL 数据库中批量更新多条记录的操作。这种操作在实际应用中非常常见,例如批量更新用户信息、订单状态等。然而,批量更新的效率问题一直是一个棘手的问题。近期...
### MySQL级联更新与级联删除详解 在数据库设计中,外键约束是维护数据完整性和一致性的重要手段之一。MySQL的InnoDB存储引擎支持多种不同的处理外键的方式,包括级联更新(Cascade Update)和级联删除(Cascade ...
除了上述关于密码更新的方法外,还有一些常用的 MySQL 命令,如创建数据库、导入/导出数据等: 1. **创建数据库**: - 使用 `MySQL -u root` 命令连接 MySQL 服务器。 - 使用 `create database ttt;` 命令创建名...
插入数据使用`INSERT INTO`语句,更新数据用`UPDATE`,删除数据用`DELETE`。 4. SQL查询语言基础 - `SELECT`:用于从表中检索数据,如`SELECT * FROM users;`获取所有用户信息。 - `WHERE`:过滤结果,如`SELECT...
- 在删除日志文件之后,需要手动更新 `mysql-bin.index` 文件,删除对应的日志文件记录。 #### 方法三:设置过期天数(expire_logs_days) **参数查看与调整**: ```sql mysql> show variables like 'expire_logs_...
在MySQL数据库管理中,删除表数据是常见的操作,这可能是为了清理旧数据、测试环境的重置或数据更新。本文将详细介绍三种不同的方法来删除MySQL中的表数据,帮助你更有效地管理数据库。 ### 方法一:TRUNCATE TABLE...
3. mysql数据库的基本操作:mysql数据库提供了基本的数据操作,如新增、删除、修改和查询等操作。通过使用JDBC,可以实现这些基本操作,例如在本文中,我们使用了insert into语句向mysql数据库中插入数据。 4. Java...
MYSQL中的SQL语句包括数据库创建、表创建、数据插入、数据查询、数据更新、数据删除等。 MYSQL中的权限控制也非常重要,掌握这些权限控制可以帮助我们更好地管理和维护我们的数据库。MYSQL中的权限控制包括创建用户...
观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql 卸载前请先关闭Mysql服务 ...使用过rpm -ev +对应文件名 删除上面Mysql对应结果 rpm -ev mysql-community-
### 如何完全干净地删除MySQL数据库 在进行数据库管理或迁移的过程中,有时候我们需要彻底清除旧的MySQL数据库系统,以便重新安装或切换到其他版本。本文将详细介绍如何彻底删除MySQL数据库,确保没有任何残留文件...
4. 确保MySQL目录对System用户有适当的权限,删除 `%WINDOWS%/my.ini` 文件,检查`c:/my.cnf`的配置是否正确。 总之,解决MySQL连接问题需要仔细排查服务状态、权限设置、配置文件内容和数据文件的兼容性。在处理...
### MySQL常用命令详解 ...以上就是关于MySQL常用命令的一些详细介绍,这些命令可以帮助数据库管理员高效地完成日常维护工作,如备份、恢复、用户管理等。掌握这些命令对于使用MySQL数据库至关重要。
Java 连接 MySql 数据库,并实现插入、删除、更新、选择操作 Java 连接 MySql 数据库是 Java 程序员中非常常见的一种操作。通过使用 JDBC(Java Database Connectivity,Java 数据库连接)驱动程序,可以轻松地连接...
然而,在使用 MySQL 过程中,用户经常会遇到一些常见的问题,本文将对这些问题进行总结和解决。 一、 MySQL 登录问题 Q: 如何登录 MySQL? 使用 mysql 提供的客户端工具登录,命令格式为:`#PATH_TO_MYSQL/bin/...
"SQL Server 操作 MySQL 的步骤和方法" 在多种数据库环境下,经常会遇见在不同数据库之间转换数据和互相进行操作的情况。下面是使用 SQL Server 操作 MySQL 的步骤和方法的详细说明: 1. 操作前的准备 在 SQL ...
最后,打开 MySQL 目录下的 my.ini 文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。重启 MySQL 服务。在命令行中输入“mysql -uroot -prootadmin”,问题搞定! 小结 MySQL 数据库密码重置是一个...
"MySQL 中利用外键实现级联删除、更新" 在 MySQL 中,外键是指在一个表中的一列或多列,引用另一个表中的主键或唯一索引。外键可以强制实施数据的一致性和完整性,使得数据更加可靠。外键在 MySQL 中的实现主要是...
mysql压缩版彻底删除方法,有图文介绍!由于安装某个项目的执行文件,提示要卸载MySQL以便它自身MySQL安装,然后我禁用了MYSQL服务,再把这个文件夹删除后,发现还是提示请卸载MYSQL服务。
根据给定的信息,本文将详细解释如何在C#中连接MySQL数据库,并进行基本的数据操作,如查询、插入、更新和删除等。 ### C#连接MySQL的方法 #### 1. 引入必要的命名空间 要在C#中连接MySQL,首先需要引入相关的...