如何从表中选择所有偶数id?

时间:2014-02-01 23:37:13

标签: javascript php mysql sql

我想从我的MySQL数据库中的表中选择所有偶数帖子id,然后显示它们。我还希望获得所有带有奇数ID的帖子并将其显示在其他地方。

我想用PHP来做这件事,因为那是我正在使用的服务器端语言。

或者,我是否必须选择所有帖子,然后使用JavaScript检查它们是否是偶数/奇数?我更喜欢PHP,但如果它适用于JavaScript也可以。

我想要的例子:

表:

==================================================
id | text
==================================================
==================================================
| 1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. |
================================================== 
| 2 | turpis quis aliquet commodo, urna quam viverra justo, in |
==================================================
| 3 | Etiam in lectus sem. Nullam molestie nisl vel nunc consectetur |
==================================================
| 4 | Vestibulum eu molestie sapien. Ut luctus nulla vel libero sagittis |
==================================================

我在stackoverflow中的表失败了^^

我想首先显示偶数,然后显示奇数:

Even Rows:


turpis quis aliquet commodo,urna quam viverra justo,in

Vestibulum eu molestie sapien。 Ut luctus nulla vel libero sagittis


奇数行:

Lorem ipsum dolor sit amet,consectetur adipiscing elit

Etiam in lectus sem。 Nullam molestie nisl vel nunc consectetur

4 个答案:

答案 0 :(得分:47)

要从MySQL表中选择偶数或奇数ID,您可以使用modulo运算符(就像在PHP中一样):

SELECT * FROM table WHERE (id % 2) = 0; # even
SELECT * FROM table WHERE (id % 2) > 0; # odd

答案 1 :(得分:5)

为了从MySQL表中选择偶数或奇数ID,你可以使用'MOD',这种方法可以选择奇数和偶数。

选择奇数

select column_name from table_name where mod(column_name,2)=1;

选择偶数

select column_name from table_name where mod(column_name,2)=0;

如果您需要奇数,请输入1。

如果您需要偶数,请输入0。

答案 2 :(得分:0)

SELECT * FROM table_name WHERE (id%2)=0;

此查询返回ID为偶数的结果。

答案 3 :(得分:0)

SELECT * FROM table_name WHERE id&1 = 0

例如5%2花费了更多的时间进行计算,按位运算符比算术更快

  • 表示5 ,101和001 = 001,即1表示奇数
  • 表示4 ,100和001 = 000,即0表示偶数

// for displaying even first then odd

    
        id | text
        ---------
        1  | odd-1
        ---------
        2  | even-1
        ---------
        3  | odd-2
        --------
        4  | even-2
        ----------
        5  | odd-3
        ----------
SELECT * FROM table_name WHERE order by id&1 asc;

结果

id text
--------

2  even-1
-----------
4  even-2
----------
1  odd-1
----------
3  odd-2
----------
5  odd-3