mysql 报错 ‘u'Subquery returns more than 1 row'’

watch_course_sql = """select  DATE_FORMAT( FROM_UNIXTIME(a.CreateTime / 1000) , ‘%%Y-%%m-%%d %%T‘) regtime,
    a.username
FROM
    bskuser a
where
    a.UserName
in
    (select
        username
          from
            bskchapterlist
                where
                    lessonid =
                        (select
                                id
                            from
                                bsklesson a
                            WHERE
                                a.lessonname like \‘%s\‘)
                            )
limit   %d,50

""" % (coursename, page*50)
前台传来的coursename应该是汉字

但是如果错误传来number的时候 

后台会报错 

‘u‘Subquery returns more than 1 row‘’        只需在在相关的位置加个any就行啦
最终的sql语句  
select  DATE_FORMAT( FROM_UNIXTIME(a.CreateTime / 1000) , ‘%Y-%m-%d %T‘) regtime,
            a.username username
        FROM
            bskuser a
        where
            a.UserName
        in
             (select
                username
                  from
                    bskchapterlist
                        where
                            lessonid =
                                ANY (select
                                        id
                                    from
                                        bsklesson a
                                    WHERE
                                        a.lessonname like ‘%2%‘)
                                    )
相关资料:http://stackoverflow.com/questions/778239/mysql-subquery-returns-more-than-one-row

mysql 报错 ‘u'Subquery returns more than 1 row'’

时间: 2024-10-16 13:49:00

mysql 报错 ‘u'Subquery returns more than 1 row'’的相关文章

MySQL报错“1366 - Incorrect integer value: '' XXXXXXX' at row 1 ”

出现这个错误是因为我在表中插入了一条含有中文字符的语句: 修改方法: my.ini中查找sql-mode 将 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", 修改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", 重启mysql后即可 . MySQL报错"1366 - Incorrect int

mysql报错:This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

his version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'的意思是,这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询. 也就是说,这样的语句是不能正确执行的. select * from table where id in (select id from table limit 10) 但

IDEA连接mysql又报错!Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' prope

错误界面 IDEA连接mysql,地址,用户名,密码,数据库名,全都配置好了,点测试连接,咔!不成功! 界面是这样的, 翻译过来就是:服务器返回无效时区.进入“高级”选项卡,手动设置“serverTimezone”属性. 看起来是时区出了问题.时区怎么会出问题?坑真多.网上搜了各种解决办法,琳琅满目,复杂的简单的,总算是解决了! 解决方案我的问题出在两块,第一,设置mysql的时区.第二,mysql驱动的版本.详细步骤如下: 第一,设置mysql时区.1,我们先来检查下mysql时区. 配置完环

mysql报错问题解决Character set 'utf8mb4' is not a compiled character set

mysql: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file 报错的解决方法 1.由于日常程序使用了字符集utf8mb4,为了避免每次更新时,set names utf8mb4,就把配置文件改了,如下: 增加了mysql客户端的默认字符集设置 [[email protected]~]# vim

解决mysql报错Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

启动mysql 报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 1.先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.另外看看是不是权限问题. 2.确定你的mysql.sock是不是在那个位置,mysql -u 你的mysql用户名 -p -S /var/lib/mysql/

mysql报错:MySQL server version for the right syntax to use near 'type=InnoDB'

工作中使用sql语句建表时,mysql报了如下错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1 解决方案: 这个报错是由于某些版本的mysql不支持type写法,将type关键词改成ENGINE 即可. 版权声明:本文为博主原

连接mysql报错:error 2003 (hy000):can't connect to mysql server on 'localhost' (10061)

一.mysql 的bin目录下有个MySQLInstanceConfig.exe,运行就可以进行创建数据库实例,创建实例时也可以生成windows 服务,把服务设置成自动启动就可以了 二.安装在D盘的discuzz!打开后出现上述错误,请问应如何处理?winmysqladmin已经启动,但三色树上有一个小红点如果出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)",说明你的MySQL还没有启动.解决办法

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with... Linux系统下装完MySQL,然后重启动时报错: 解决方法:  查看cat /etc/h

Mysql报错Forcing close of thread 139 user: 'root'

最近重启服务器的mysql总是报大量的如下错误: 160330  9:14:26 [Warning] /usr/libexec/mysqld: Forcing close of thread 139  user: 'root' 160330  9:14:26 [Warning] /usr/libexec/mysqld: Forcing close of thread 138  user: 'root' 160330  9:14:26 [Warning] /usr/libexec/mysqld: