Php 如果需要SQL查询方面的帮助,如何循环结果并省略第一条记录?

Php 如果需要SQL查询方面的帮助,如何循环结果并省略第一条记录?,php,mysql,Php,Mysql,我有一个名为User的表,该表中有一个名称列表。我想运行一个SQL字符串,该字符串返回一个名称列表,但不按连续顺序返回第一条记录的名称。省略的名称将是列的标题 我试过: $result = mysql_query("SELECT name FROM user AND NOT (name = 'David')");<br> 第一个结果应该是: Tim Jeremy Mike David Roberto Jeremy Mike David Roberto Tim Mike Davi

我有一个名为User的表,该表中有一个名称列表。我想运行一个SQL字符串,该字符串返回一个名称列表,但不按连续顺序返回第一条记录的名称。省略的名称将是列的标题

我试过:

$result = mysql_query("SELECT name FROM user AND NOT (name = 'David')");<br>
第一个结果应该是:

Tim
Jeremy
Mike
David
Roberto
Jeremy
Mike
David
Roberto
Tim
Mike
David
名称
Roberto
被省略

第二个结果应该是:

Tim
Jeremy
Mike
David
Roberto
Jeremy
Mike
David
Roberto
Tim
Mike
David
省略名称
Tim

第三个结果应该是:

Tim
Jeremy
Mike
David
Roberto
Jeremy
Mike
David
Roberto
Tim
Mike
David
名字
Jeremy
被省略


依此类推。

您可以将表本身连接起来,并使用
GROUP_CONCAT()
获取所有其他名称

SELECT u1.name, GROUP_CONCAT(u2.name) AS others
FROM user AS u1
JOIN user AS u2 ON u2.name != u1.name
others
将是所有其他名称的逗号分隔列表。所以它看起来像:

name    others
Roberto Tim,Jeremy,Mike,David
Tim     Roberto,Jeremy,Mike,David
Jeremy  Roberto,Tim,Mike,David
Mike    Roberto,Tim,Jeremy,David
David   Roberto,Tim,Jeremy,Mike
然后可以在PHP中使用
explode()
将其拆分为一个数组


如果您有许多名称,请确保将
group\u concat\u max\u len设置得足够高,以便允许所有名称。

您可以将表本身连接起来,并使用
group\u concat()
获取所有其他名称

SELECT u1.name, GROUP_CONCAT(u2.name) AS others
FROM user AS u1
JOIN user AS u2 ON u2.name != u1.name
others
将是所有其他名称的逗号分隔列表。所以它看起来像:

name    others
Roberto Tim,Jeremy,Mike,David
Tim     Roberto,Jeremy,Mike,David
Jeremy  Roberto,Tim,Mike,David
Mike    Roberto,Tim,Jeremy,David
David   Roberto,Tim,Jeremy,Mike
然后可以在PHP中使用
explode()
将其拆分为一个数组


如果您有很多名称,请确保将
group\u concat\u max\u len设置得足够高,以允许所有名称。

我使用的是PHP5.5,我曾尝试使用7.2,但在连接MySQL数据库时遇到问题。这是因为您使用的数据库API已经过时十年了。
WHERE
子句的关键字是,
其中
,而不是
,如“
从用户和非用户中选择名称(名称='David')
”。但除此之外,哪些列定义了表中的顺序?你为什么要这么做?也许这样的问题并不是你实际问题的最佳答案。谢谢你的回答。这个想法是建立一个VS表。每个表格结果都属于省略的名称。例如:Table Header:Roberto Table Data:vs Tim vs Jeremy vs Mike vs David“我曾尝试使用7.2,但在连接MySQL数据库时遇到问题”-这是因为您使用的MySQL api在该版本的PHP中不再受支持。我使用的是PHP 5.5,我曾尝试使用7.2,但在连接MySQL数据库时遇到问题。这是因为您使用的数据库API已经过时十年了。
WHERE
子句的关键字是,
WHERE
,而不是
,如“
从用户选择名称而不是(name='David')
”。但除此之外,哪些列定义了表中的顺序?你为什么要这么做?也许这样的问题并不是你实际问题的最佳答案。谢谢你的回答。这个想法是建立一个VS表。每个表格结果都属于省略的名称。例如:Table Header:Roberto Table Data:vs Tim vs Jeremy vs Mike vs David“我曾尝试使用7.2,但在连接MySQL数据库时遇到问题”-这是因为您使用的MySQL api在该版本的PHP中不再受支持。