MySql报错: You can't specify target table 'table name' for update in FROM clause

MySql报错: You can't specify target table 'table name' for update in FROM clause,第1张

错误提示:不能先将select出表中的某些值,再update这个表(在同一语句中)。

替换方案:

方案一:

多嵌套一层子查询,再进行删除,如下:

完整代码如下:

DELETE FROM blur_article WHERE id NOT IN (

SELECT id FROM (

SELECT min(id) AS id FROM blur_article GROUP BY title

) t

)

方案二:

1.创建一张临时表,将要删除的条件自动存入临时表中:

2.再根据临时表,删除主表数据:

3.最后删除掉临时表:

完整代码如下:

1.create table temp as select min(id) as col1 from blur_article group by title

2.delete from blur_article where id not in (select col1 from tmp)

3.drop table tmp

出现这种情况是因为你建表的SQL语句有错误,

你的给出的代码里option为MYSQL关键字,不能直接写,需要用`包括起来,为:  `option` varchar(50) NOT NULL default ''

----下面就没问题了

CREATE TABLE components (

id int(11) NOT NULL auto_increment,

name varchar(50) NOT NULL default '',

link varchar(255) NOT NULL default '',

menuid int(11) unsigned NOT NULL default '0',

parent int(11) unsigned NOT NULL default '0',

admin_menu_link varchar(255) NOT NULL default '',

admin_menu_alt varchar(255) NOT NULL default '',

`option` varchar(50) NOT NULL default '',

ordering int(11) NOT NULL default '0',

admin_menu_img varchar(255) NOT NULL default '',

iscore tinyint(4) NOT NULL default '0',

params text NOT NULL,

PRIMARY KEY (id)

) TYPE=MyISAM

扩展资料:

MYSQL 报错解决:

1.Starting MySQL.Manager of pid-file quit without updating fi[失败]

关于这个错误原因有很多,最大的可能是没有创建测试数据库,可以用/usr/local/mysql/scripts/mysql_install_db _user=mysql命令进行创建;另外一个原因可能是权限设置问题,需要赋予mysql的data权限,可以用chmod -R 命令。

2.FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults If you are using a binary release,you must run this script from

within the directory the archive extracted into. If you compiled

MySQL yourself you must run ‘make install’ first.

这个错误,是没有指明mysql的data路径导致的:

vim /etc/my.cnf

在[mysqld] 后面加上路径:

basedir = /usr/local/mysql

datadir =/opt/data;

3.-bash: mysql: command not found

用mysql命令进行登陆mysql报错,原因是没有设置环境变量,需要设置。

mysql -u root

4.ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server

用mysql远程工具链接数据库报错,这个错误原因是没有开放远程链接功能,可以在mysql里面输入如下命令进行解决:GRANT ALL PRIVILEGES ON *.* TO ’root‘@’%' IDENTIFIED BY ’password’ WITH GRANT OPTION

参考资料:百度百科-mySQL


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/6098688.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-14
下一篇2023-03-14

发表评论

登录后才能评论

评论列表(0条)

    保存