2

假设我有一个简单的值表(几乎像键/值存储)。表上有一个主键,它被索引并自动递增。例如,这里有一些行:

 [id]  [columnA]   [columnB]
  2     "data"    "more data"    
  3     "data"    "more data"    
  4     "data"    "more data"    
  7     "data"    "more data"
  8     "data"    "more data"
  11    "data"    "more data"

表中可能有 1000 多个值。

假设我想选择包含该表中第一个奇数编号的 id的行。在这种情况下,它应该返回 row 3 "data" "more data"

另外,我将如何选择第一个偶数编号的 id?

非常感谢

4

2 回答 2

3
select id
from table
where MOD(id, 2) = 1
order by id
limit 0, 1

使用数学函数 13 % 2 = 1 (对不起,我不知道它在英语中如何,除以模数)。MySQL函数是MOD

于 2013-07-24T08:41:47.967 回答
3

这将为您提供所有具有偶数 ID 的行。

SELECT ID FROM table WHERE MOD(ID,2) = 0

然后在这个结果上你可以使用

SELECT TOP 1 *
FROM myTable
ORDER BY ID

奇怪的是你可以使用

SELECT ID FROM table WHERE MOD(ID,2) = 1

如果您使用的是 SQL Server,请使用 TOP 如果您使用的是 MySQL 或 Postgres,请使用 Limit!

于 2013-07-24T08:47:33.663 回答