mysql - 当true为true时,查询并不总是显示结果

时间:2017-04-13 13:01:11

标签: mysql

我在mysql中运行以下查询,并且取决于添加的值将取决于系统在运行查询时是否显示一行。每行作为一个值,这不应该是一个问题,并且她在数据库中的所有值都应该显示一行,但事实并非如此,这是我的查询。

如果我进入高尔夫球场,则会显示正确的行,但不会显示足球。

CREATE TABLE `sports` (
  `sport_ID` int(11) NOT NULL,
  `Name` varchar(20) NOT NULL,
  `Tag` varchar(100) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;

INSERT INTO `sports` (`sport_ID`, `Name`, `Tag`) VALUES
(1, 'Football', 'Rugby'),
(2, 'Rugby', 'Basketball'),
(3, 'Basketball', 'Golf'),
(4, 'Golf', 'Football')


SELECT *
FROM sports b 
join sports a
on a.Tag = b.Name
where b.sport_ID > a.sport_ID and a.Tag = 'Football'
LIMIT 1

1 个答案:

答案 0 :(得分:1)

>替换为<>

SELECT *
FROM sports b 
left join sports a
on a.Tag = b.Name
where b.sport_ID <> a.sport_ID and a.Tag = 'golf'
LIMIT 1

现在为golffootball返回一行。

但是

我怀疑你的问题可能比这更复杂,也许样本太小了。