CREATE TABLE `changes` (
  `id` int(11) NOT NULL auto_increment,
  `userId` int(11) NOT NULL,
  `rm` int(11) NOT NULL,
  `cb` int(11) NOT NULL,
  `cname` varchar(20) NOT NULL,
  `cAccount` varchar(200) NOT NULL,
  `cstatus` tinyint(4) NOT NULL default '0' COMMENT '0处理中1处理成功2处理失败',
  `re` varchar(500) NOT NULL default '',
  `intime` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `userId` (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;这个是表结构,求大侠看看

解决方案 »

  1.   

    userId=101 这个条件加上,数据有多少条,去掉limit看看
      

  2.   


    去掉limit正常,where userId=101我是加上的,我就想查出最后一条啊
      

  3.   

    select * from changes where userId=101 ORDER by id DESC返回的结果是什么样?贴出以供分析。
      

  4.   

    不写limit 1,是正常的,就是按照id倒序排,但是加上limit 1,出来的竟然是id最小的那条,按道理应该是id最大的一条吧。/*
    Navicat MySQL Data TransferSource Server         : s
    Source Server Version : 50051
    Source Host           : localhost:3306
    Source Database       : zydbTarget Server Type    : MYSQL
    Target Server Version : 50051
    File Encoding         : 65001Date: 2014-10-03 19:16:12
    */SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
    -- Table structure for `changes`
    -- ----------------------------
    DROP TABLE IF EXISTS `changes`;
    CREATE TABLE `changes` (
      `id` int(11) NOT NULL auto_increment,
      `userId` int(11) NOT NULL,
      `rm` int(11) NOT NULL,
      `cb` int(11) NOT NULL,
      `cname` varchar(20) NOT NULL,
      `cAccount` varchar(200) NOT NULL,
      `cstatus` tinyint(4) NOT NULL default '0' COMMENT '0处理中1处理成功2处理失败',
      `re` varchar(500) NOT NULL default '',
      `intime` datetime NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `userId` (`userId`)
    ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;-- ----------------------------
    -- Records of changes
    -- ----------------------------
    INSERT INTO `changes` VALUES ('7', '101', '50', '75000', '阿萨', '工商银行6222023901007972827浙江省宁波市', '2', '姓名和帐号不匹配', '2014-10-02 18:25:23');
    INSERT INTO `changes` VALUES ('8', '101', '50', '75000', '阿萨', '啊撒西啊伤心啊思想啊撒西啊伤心安塞县', '2', '爱相随阿萨', '2014-10-03 15:22:26');
    INSERT INTO `changes` VALUES ('9', '101', '50', '75000', '阿萨', '工商银行:6222024901007972827浙江省宁波市', '2', '姓名和帐号不匹配', '2014-10-03 15:34:12');
    INSERT INTO `changes` VALUES ('10', '101', '50', '75000', '阿萨', '工商银行:6222023901007972827浙江省宁波市', '2', '账号姓名不匹配', '2014-10-03 15:38:25');
    INSERT INTO `changes` VALUES ('11', '101', '50', '75000', '阿萨', '阿克苏行啊撒西啊伤心那就可塑性', '2', '帐号姓名不匹配,消耗的银两已经全部返还给你', '2014-10-03 15:43:37');
    INSERT INTO `changes` VALUES ('12', '101', '50', '75000', '阿萨', '阿克苏向阿森纳下安塞县', '0', '', '2014-10-03 15:46:34');您能运行下吗,帮我看看
      

  5.   

    运行得到id=12的数据是没错,我本机运行ok:SELECT * FROM changes WHERE userId=101 ORDER BY id DESC LIMIT 1
      

  6.   


    郁闷,为什么我运行出来是7的那条,版本是5.0.51b。查看了这个http://blog.sina.com.cn/s/blog_705cc5dd01012ehb.html我修改成这样select * from (select * from changes  where userId=101 ORDER BY id DESC ) a limit 1这样才正常,真不知道是什么原理