SELECT * FROM `m_posts` WHERE top=0 ORDER BY tid DESC这样就没有结果:如下两行则可以.
SELECT * FROM `m_posts` ORDER BY tid DESC
SELECT * FROM `m_posts` WHERE top=0;条件不能跟排序放一起?? mysql6+PHP6

解决方案 »

  1.   

    不会存在这种问题啊。建议你直接在MYSQL的命令行工具中先试一下,以断定问题是在MYSQL端还是在你的程序中。基本上问题应该出在你的PHP程序中,估计什么地方代码写错了。
      

  2.   


    没有结果,有什么错误提示吗?
    这样的语法是标准SQL,你放到MYSQL命令行里执行看,排除其他可能的问题。
      

  3.   


    CREATE TABLE `m_posts_test` (
      `tid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `userid` INT(11) DEFAULT '0',
      `fid` INT(10) UNSIGNED DEFAULT '0',
      `firsts` INT(10) UNSIGNED DEFAULT '0',
      `subject` VARCHAR(200) DEFAULT NULL,
      `message` TEXT,
      `attachment` TINYINT(3) UNSIGNED DEFAULT '0',
      `dateline` INT(10) UNSIGNED DEFAULT '0',
      PRIMARY KEY (`tid`),
      KEY `fid` (`fid`),
      KEY `userid` (`userid`),
      KEY `first` (`firsts`)
    ) ENGINE=MYISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8一样.. 
      

  4.   

    SELECT * FROM `m_posts_test` WHERE firsts=0 ORDER BY 1 DESC LIMIT 1
    这样都可以.SELECT * FROM `m_postst` WHERE firsts=0 ORDER BY 1 DESC LIMIT 2
    就不行!!
      

  5.   


    既然这样,就把m_postst删掉吧,然后吧把m_posts_test重命名为m_posts  搞定。哇哈哈。
      

  6.   

    我从事mysql也不是一天两天, 字面的错误,我可以发现, 现在是mysql 6问题.
    我可以确切.
      

  7.   

    6.0不应该存在这样的bug吧..试试 
    create table temp like `m_posts_test`;然后再 temp上试试 
      

  8.   

    明天试试. 
    我现在把程序搬回家中的平台运行mysql 5.0的版本, 就可以查出值. 
      

  9.   

    还是直接向MYSQL汇报这个BUG吧。
      

  10.   

    select version();也贴出来看一下。 如果确认BUG,则只能找MYSQL了。
      

  11.   

    http://www.phpwind.net/read-htm-tid-817287.html
    这主题也讲到这问题. 6楼
      

  12.   

    你到MYSQL的命令行下去执行,看结果是不是一样?