首页 文章

如何在PHP中以随机顺序从现有的mysql数据库创建两个新列表,其中相同位置的元素不相等?

提问于
浏览
1

好 . 让我们更清楚一点 .

我想要做的是以下内容:

我有一张像这样的 table ......

+---------+--------------------+--------------------------+
    |    id   |    name            | email                    |
    +---------+--------------------+--------------------------+
    | 1       |  karl              | karl@email.com           |
    +---------+--------------------+--------------------------+
    | 2       |  fred              | fred@email.com           |
    +---------+--------------------+--------------------------+
    | 3       |  christopher       | chris@email.com          |
    +---------+--------------------+--------------------------+

我想要最终得到的是一个如下的新表:

+-----+---------------+---------------------+--------------+--------------------+
    | id  | name1         | email1              | name2        | email2             |
    +-----+---------------+---------------------+--------------+--------------------+
    | 1   | fred          | fred@email.com      | christopher  | chris@email.com    |
    +-----+---------------+---------------------+--------------+--------------------+
    | 2   | christopher   | chris@email.com     | karl         | karl@email.com     |
    +-----+---------------+---------------------+--------------+--------------------+
    | 3   | karl          | karl@email.com      | fred         | fred@email.com     |
    +-----+---------------+---------------------+--------------+--------------------+

值是水平唯一的(id [1] .name1!= id [1] .name2)和vertical(id [1] .name1!= id [2] .name1) .

因此,此输出不可能:

+-----+---------------+---------------------+--------------+--------------------+
    | id  | name1         | email1              | name2        | email2             |
    +-----+---------------+---------------------+--------------+--------------------+
    | 1   | fred          | fred@email.com      | christopher  | chris@email.com    |
    +-----+---------------+---------------------+--------------+--------------------+
    | 2   | fred          | fred@email.com      | karl         | karl@email.com     |
    +-----+---------------+---------------------+--------------+--------------------+
    | 3   | karl          | karl@email.com      | karl         | karl@email.com     |
    +-----+---------------+---------------------+--------------+--------------------+

我怎样才能轻松实现这一目标?

1 回答

  • 0

    我认为这个查询应该做的工作:

    SELECT id1.name AS name1, id1.email AS email1, id2.name AS name2, id2.email AS email2
    FROM table AS id1
    JOIN table AS id2 ON ( name1 != name2 ) 
    WHERE name1 < name2
    

    其中table是表的名称 . 我希望它会有所帮助 .

相关问题