MySQL版本5.0
insert delete 操作是不允许使用表别名的。
update where条件中不允许自连接
update test set id=1 where pid in(select id from test where pid=12); 是不允许的。
解决办法:
update `a` as `c1`, `a` as `c2` set `c1`.`id` = 0
where `c1`.`id` <> `c2`.`sid`
MySQL ERROR 1093 (HY000): You can't specify target table 'forum_members'
SQL:
update forum_members
set is_multi = 1
where M_NAME IN(
select M_NAME from forum_members
group by M_NAME
having count(*) >1
)
该号令
1)在phpMyAdmin 中传:
#1093 - You can't specify target table 'forum_members' for update in FROM clause
2)在MySQL 号令列东西中传回:
ERROR 1093 (HY000): You can't specify target table 'forum_members' for update in FROM clause
原因:
mysql对子查询的支持是比力单薄的 ,就是说 update的where语句中不能子查询
在MySQL手册中的错误代码:
错误:1093 SQLSTATE: HY000 (ER_UPDATE_TABLE_USED)
动静:不能在FROM子句中制定要更新的方针表'%s'。
Mysql手册中的相干描写:
一般而言,不能更改表,并从子查询内的相同表进行选择。
例如,该限定合用于具有下述形式的语句:
DELETE FROM t WHERE ... (SELECT ... FROM t ...);
UPDATE t ... WHERE col = (SELECT ... FROM t ...);
{INSERT|REPLACE} INTO t (SELECT ... FROM t ...);
例外:如果为FROM子句中更改的表施用子查询,前述禁令将不再合用。
例如:
UPDATE t ... WHERE col = (SELECT (SELECT ... FROM t...)
AS _t ...);
禁令在此不合用,这是由于FROM中的子查询已被详细化为临时表,因此 “t”中的相干行已在满足“t”前提的环境下、在更新时当选中。
English:
· In general, you cannot modify a table and select from the same table in a subquery. For example, this limitation applies to statements of the following forms:
DELETE FROM t WHERE ... (SELECT ... FROM t ...);
UPDATE t ... WHERE col = (SELECT ... FROM t ...);
{INSERT|REPLACE} INTO t (SELECT ... FROM t ...);
Exception: The preceding prohibition does not apply if you are using a subquery for the modified table in the FROM clause. Example:
UPDATE t ... WHERE col = (SELECT (SELECT ... FROM t...) AS _t ...);
Here the prohibition does not apply because a subquery in the FROM clause is materialized as a temporary table, so the relevant rows in t have a
解决:
依据手册将该号令改成:
UPDATE forum_members AS A
INNER JOIN (
SELECT M_NAME
FROM forum_members
GROUP BY M_NAME
HAVING count( * ) >1
) AS B ON A.M_NAME = B.M_NAME
SET A.is_multi =1
分享到:
相关推荐
SQL 和 MySQL 中的别名机制在执行过程中存在一定的差异,主要体现在别名的引用上。在 SQL 查询中,别名的使用是为了简化表或...在编写复杂查询时,注意避免在不支持别名的地方使用别名,以免导致错误或不可预测的结果。
5. **别名在子查询中使用**:在子查询中定义的别名只在其内部有效,外部查询不能直接引用,需要再次定义或使用嵌套查询。 6. **别名的优先级**:如果一个别名同时用于表和字段,字段的别名会优先被解析。例如,如果...
例如,在文章表`article`和用户表`user`的场景中,如果我们想要查询一篇特定文章及其作者的信息,不使用别名的SQL语句可能是这样的:`SELECT article.title, article.content, user.username FROM article, user ...
列别名;列别名;列别名;列别名; 【例】 对Sell表的记录计算订购金额(订购金额=订购册数*订购单价),并显示图书编号和订购金额。 SELECT 图书编号, 订购册数*订购单价 AS 订购金额 FROM Sell; ;列别名的作用 生成列...
MySQL中的表别名(Alias)是一种非常实用的功能,它允许我们为数据库表和列赋予临时的、简短的名字,使得SQL查询语句...在编写SQL查询时,合理地使用表别名是良好编程习惯的一部分,它能提升代码质量,减少维护成本。
本文实例讲述了MySQL Union合并查询数据及表别名、字段别名用法。分享给大家供大家参考,具体如下: union关键字 SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION ALL SELECT s_id, f_name...
5.4.4 存储过程和触发器 5.4.5 外键(Foreign Keys) 5.4.5.1 不使用外键的理由 5.4.6 视图(Views) 5.4.7 '--'作为一个 注解的开始 5.5 MySQL 遵循什么标准? 5.6 怎样处理没有提交/回卷...
1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. MaxDB的历史 1.5.3. MaxDB的特性 1.5.4. 许可和支持 1.5.5. MaxDB和MySQL之间的特性差异 1.5.6. ...
13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 ...
1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. MaxDB的历史 1.5.3. MaxDB的特性 1.5.4. 许可和支持 1.5.5. MaxDB和MySQL之间的特性差异 ...
使用AS关键字可以为查询结果的列指定别名,提高可读性。同时,DISTINCT关键字可以去除查询结果中的重复项。 在处理字段连接时,MySQL提供了CONCAT()函数,用于将多个字段或字符串合并。如果某个字段值可能为空,...
为了方便使用 MySQL 命令行工具,需要在命令行中设置别名。首先,需要打开 iTerm 应用程序,然后输入以下两条命令: alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin ...
13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 ...
5.4.4 存储过程和触发器 5.4.5 外键(Foreign Keys) 5.4.5.1 不使用外键的理由 5.4.6 视图(Views) 5.4.7 '--'作为一个 注解的开始 5.5 MySQL 遵循什么标准? 5.6 怎样处理没有提交...
在JMeter中,只需将这个jar文件放入`lib`目录,JMeter就能识别并使用它来建立与MySQL数据库的连接。 另一方面,`jdbc-sqljdbc41.jar`是微软为SQL Server提供的JDBC驱动,版本号4.1。它允许Java应用程序与SQL Server...
13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 ...
目录 前言 1. 一般信息 1.1. 关于本手册 ...13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...