想优先 Rand() 出来 'phome_ecms_news' 表的 classid  limit 1 (并且符合)  isLast(终极栏目) = 1然后再在 表 'phome_enewsClass' 里面进行  RAND() limit 1
下面sql语句错误..不会写的情况下,只有表述一下思想了.
SELECT * FROM 'phome_ecms_news' WHERE classid = (SELECT classid FROM 'phome_enewsClass' where islast=1 RAND() limit 1) RAND() limit 1;

解决方案 »

  1.   

    语句太长..算了 拖过来看.清楚些SELECT * FROM 'phome_ecms_news' WHERE classid = 
       (
       SELECT classid FROM 'phome_enewsClass' where islast=1 RAND() limit 1
       )
    RAND() limit 1;
     
     
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:0  
      

  2.   

    SELECT * FROM 'phome_ecms_news' WHERE classid IN  
      (
      SELECT classid FROM 'phome_enewsClass' where islast=1 ORDER BY RAND() limit 1
      )
      ORDER BY RAND() limit 1;
      

  3.   

    天.为什么报错1235啊...我下的最新版本啊#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
      

  4.   

    一条语句2种错误提示.有点晕了.
    SELECT * 
    FROM 'phome_ecms_news'
    WHERE classid
    IN (SELECT classid
    FROM 'phome_enewsClass'
    WHERE islast =1
    ORDER BY RAND( ) 
    LIMIT 1 
    )
    ORDER BY RAND( ) 
    LIMIT 1 ;#1064 - 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 ''phome_ecms_news' WHERE classid IN (SELECT classid FROM 'phome_enewsClass' where' at line 1
      

  5.   

    天啊..为什么我不能用啊...非要写死才行....SELECT * from phome_ecms_news
    WHERE classid in (1,10)
    ORDER BY RAND() LIMIT 1
      

  6.   

    'phome_ecms_news'  不是单引号,而是Tab键上面那个符号。
    `phome_ecms_news`  子查询的里面的也一样