Mysql错误Operand should contain * column解决办法

使用了sql语句处理某些内容。当执行某个语句时,Mysql报错误:Operand should contain 1 column

字面意思是,需要有1个数据列。

我的sql语句类似这样:

update cdtable set cdcontent=’cd is a good boy’ where id in(

select * from(

select * from cdtable where cdtype in(1,2,3) order by id desc limit 100

)as cd

)

虽然错误的字面意思是缺少列,但是究竟是哪里缺少了列呢?

经过测试,发现是在加上最外层的sql语句之后报的错

仔细看了一下语句,发现在上面语句的蓝色部分“where id in(~~~)”,子查询使用了(select * ~~)子查询得到的是不止一列的数据记录

而很明显,where id in 需要的条件数据是一个列,问题就发生在这里啦

解决的方法是:把where id in(~~)括号内的第一层子查询的“*”改成“id”即可,改后的句子就像:

update cdtable set cdcontent=’cd is a good boy’ where id in(

select id from(

select * from cdtable where cdtype in(1,2,3) order by id desc limit 100

)as cd

)

时间: 2024-08-02 10:22:18

Mysql错误Operand should contain * column解决办法的相关文章

Linux下MySQL忘记超级用户口令的解决办法

解决办法一 MySQL忘记超级用户口令的解决办法  如果MySQL正在运行,首先杀之: killall -TERM mysqld. 启动MySQL:  代码如下 复制代码 bin/safe_mysqld --skip-grant-tables & 就可以不需要密码就进入MySQL了 然后就是  代码如下 复制代码 >use mysql >update user set password=password("new_pass") where user="ro

linux-fedora安装mysql出现版本冲突有什么解决办法

问题描述 fedora安装mysql出现版本冲突有什么解决办法 在fedora15中用yum安装mysql,可能之前不太懂就把mysql-libs给更新了,然后问题就来了,如下: 错误:Package: mysql-5.5.23-1.fc15.i686 (updates) Requires: mysql-libs(x86-32) = 5.5.23-1.fc15 已安装: mysql-libs-5.5.24-1.fc15.i686 (@updates-testing) mysql-libs(x86

无法启动MYSQL服务”1067 进程意外终止”解决办法

启用MySql服务的时候出现"windows无法启动mysql服务(位于本地计算机上.错误1067:进程意外终止)",看看mysql服务并没有其它的依赖安系啊,于是突然想到进系统日志看看,果然发现很多MySql的很多错误,终于找到问题所在.     在win7的服务器里开启MySql服务提示"windows无法启动mysql服务(位于本地计算机上.错误1067:进程意外终止)" 进入"事件查看器""应用程序"果然发现很多MyS

MySQL忘记root密码的正确解决办法

mysql教程忘记root密码的正确解决办法 介绍的是mysql忘记root密码的正确解决办法,我们大家都知道在实际操作中忘记密码 是令人十分头疼的事情,以下就是针对这一问题给出的正确解决方案,望你在浏览之 后会收获不小. mysql忘记root密码解决办法: 在windows下: 打开命令行窗口,停止mysql服务: net stop mysql 启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe 来到该目录下: c:program filesmysqlmysql s

mysql无法启动问题分析与解决办法

因为要调试程序的关系,从后台修改了mysql设置,设置成 join_buffer_size=512k 结果保存后立即mysql无法连接,重启lu-restart,mysql-restart都无法连接. 操作成功! LuManager不能连接MySQL数据库,请用SSH登陆服务器检查MySQL数据库是否已启动 如果已经启动成功,请检查/usr/local/LuManager/Conf/config.php文件中的连接密码是否正确 如果没有启动成功,请用SSH登陆服务器,执行mysql-restar

mysqlhotcopy提示错误Cant locate DBI.pm解决办法

Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/local/webserver/mysql/bin/mysqlh

ERROR 1406 : Data too long for column 解决办法_Mysql

解决办法: 在my.ini里找到 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION" 把其中的STRICT_TRANS_TABLES,去掉, 或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION 注释掉,然后重启mysql就ok了

linux中mysql不能 REPAIR TABLE修复表解决办法

REPAIR TABLE语法 REPAIR TABLE `table_name` 修复表 REPAIR TABLE 用于修复被破坏的表 在linux中使用 REPAIR TABLE `table_name` pre_forum_thread 提示 xt.pre_forum_thread repair error 1 when fixing table xt.pre_forum_thread repair Error Can't change ownership of the file '/usr

SQL数据库实例名称找不到或远程连接失败并显示错误error40的原因及解决办法_MsSql

分享由字符"\"转义引起的SQL数据库实例名称找不到或远程连接失败并显示错误error40的解决办法: 一.问题介绍 很久没有用c#去连数据库程序了,不过在网上找了一些资料,基本上还是写出来了,但是调试初步完成的程序时候,却发现在con.open()这个方法总是出错,说找不到数据库实例名称,或者远程连接失败,显示的错误是error40. 错误如下:   二.环境介绍 1.我的数据库是sqlserver2008,使用的开发环境是vs2013,.net4.0 2.我的数据库安装采用的命名实