`
winie
  • 浏览: 216558 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

mysql 不能使用别名

阅读更多

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

分享到:
评论

相关推荐

    MySQL中使用表别名与字段别名的基本教程

    主要介绍了MySQL中使用表别名与字段别名的基本教程,利用SELECT语句和AS子句进行取别名的操作,需要的朋友可以参考下

    MySQL数据库:列别名.pptx

    列别名;列别名;列别名;列别名; 【例】 对Sell表的记录计算订购金额(订购金额=订购册数*订购单价),并显示图书编号和订购金额。 SELECT 图书编号, 订购册数*订购单价 AS 订购金额 FROM Sell; ;列别名的作用 生成列...

    MySQL笔记之别名的使用

    在查询时,可以为表和字段取一个别名。这个别名可以代替其指定的表和字段

    MySQL Union合并查询数据及表别名、字段别名用法分析

    本文实例讲述了MySQL Union合并查询数据及表别名、字段别名用法。分享给大家供大家参考,具体如下: union关键字 SELECT s_id, f_name, f_price FROM fruits WHERE f_price &lt; 9.0 UNION ALL SELECT s_id, f_name...

    MYSQL

    5.4.4 存储过程和触发器 5.4.5 外键(Foreign Keys) 5.4.5.1 不使用外键的理由 5.4.6 视图(Views) 5.4.7 '--'作为一个 注解的开始 5.5 MySQL 遵循什么标准? 5.6 怎样处理没有提交/回卷...

    MySql 5.1 参考手册.chm

    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. ...

    关于sql和mysql对于别名不能调用的一些理解

    在写sql的时候,由于有部分语句别名不能调用,百度了一下原因,原来是由于别名机制不同引起的。为了避免下一次再犯同样的错误,今天把网上找到资料总结了一下,sql和mysql执行顺序,发现内部机制是一样的。最大区别...

    MySQL 表别名(Alias).docx

    MySQL 表别名(Alias).docx

    MySQL 5.1参考手册

    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之间的特性差异 ...

    MySQL中文参考手册.chm

    5.4.4 存储过程和触发器 5.4.5 外键(Foreign Keys) 5.4.5.1 不使用外键的理由 5.4.6 视图(Views) 5.4.7 '--'作为一个 注解的开始 5.5 MySQL 遵循什么标准? 5.6 怎样处理没有提交...

    MySQL 5.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 TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 ...

    MySQL 5.1参考手册中文版

    目录 前言 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 ...

    MySQL 5.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 TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 ...

    MySQL中文参考手册

    # 5.4.5.1 不使用外键的理由 + 5.4.6 视图(Views) + 5.4.7 '--'作为一个 注解的开始 o 5.5 MySQL 遵循什么标准? o 5.6 怎样处理没有提交/回卷(COMMIT / ROLLBACK) * 6 MySQL 存取权限系统 o 6.1 权限系统做...

    MySQL 5.1官方简体中文参考手册

    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. ...

    mysql5.1中文手册

    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之间的特性...

Global site tag (gtag.js) - Google Analytics