1

我有这张桌子:

CREATE TABLE IF NOT EXISTS `Vars` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `code` varchar(15) NOT NULL,
  `userID` bigint(20) NOT NULL,
  `viewedT` bigint(20) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

我有这些价值观:

INSERT INTO `Vars` (`ID`, `code`, `userID`, `viewedT`) VALUES
(1, 'alex1234567', 1, 25),
(2, 'Dan1234567', 2, 15);

现在奇怪的是,我不能用这个查询得到正确的结果:

select min(`viewedT`), `code` From Vars

结果是:

 min(`viewedT`)     Code
 15                 alex1234567

编辑:我需要的是选择code哪些有min(viewsT)

我确信我在语法中遗漏了一些非常小的东西,这会让我投票失败,但我需要知道我的错误并从中吸取教训。

4

2 回答 2

2

假设您想找到具有最小值的一行,请使用

select viewedT, code, id from vars
  where viewedT= (select min(viewedT) from vars)

如果不止一行包含最小值,您将获得所有此类行。即,如果两行的值为 15 viewedT,您将得到两者。

于 2013-02-13T07:16:34.640 回答
2
select viewedT,Code from Vars 
where viewedT=(select MIN(V.viewedT) from Vars as V)

它会给你以下结果

viewedT         Code

15          Dan1234567
于 2013-02-13T07:36:23.370 回答