php - 在 PHP 中使用多个 SQL 语句获取单个结果查询
问题描述
我正在寻找创建 2 个团队。经过研究,我发现我可以对我的表进行排序,然后以新的排序顺序分配一个“排名”系统。现在,我试图只提取奇数行(以及在我找出奇数之后的偶数)。
该语句将进行排序和排名:
SELECT t.*, @rownum := @rownum + 1 AS weight FROM golfers t, (SELECT @rownum := 0) r WHERE trip_name_table_ID = 1 ORDER BY golfer_handicap
请参阅SQLfiddle以获得视觉效果。
所以我weight
在排序后创建。现在,我想weight
用我发现的用于拉奇数行的代码从该列中拉出我的数据(现在应该拉奇数的加权排序):
SELECT * FROM golfers WHERE weight IN(SELECT weight FROM golfers WHERE weight%2 <> 0);
weight
既然是一AS
列,我该如何使用这两个语句?我
while($rowid = mysqli_fetch_array($result)) {}
会是什么样子?
解决方案
如果您只想从 SQL 查询中选择奇数行,那么您应该使用weight%2=1
。
完整的查询应如下所示:
SELECT * FROM (
SELECT t.*, @rownum := @rownum + 1 AS weight
FROM golfers t, (SELECT @rownum := 0) r
WHERE trip_name_table_ID = 1
ORDER BY golfer_handicap
) as t1
WHERE weight%2=0
我不知道您为什么使用while($rowid = mysqli_fetch_array($result)) {}
,但您的 mysqli 结果将包含您的查询返回的确切数据。不过,您可以改用foreach
。
foreach($result as $row) {
echo $row['golfer_name'];
echo $row['weight'];
}
推荐阅读
- powershell - 用于获取未使用证书的 Powershell 脚本
- google-tag-manager - GTM 未使用自定义 HTML 标记写入页面
- html - 使用创建弧形进度条
- c# - 如何为 Visual Studio 解决方案设置选项卡?
- apache-kafka - 在 Kafka-python 的消费者组中重置 kafka LAG(更改偏移量)
- ios - 用 swift on View 实现 3D-Touch
- ruby - 在 RubyZoho 中,如何设置 Task.related_to Lead.id?
- reactjs - 还原。如何为两个不相关的组件存储相同的数据并避免冲突
- vba - Outlook 中的可写主动内联响应
- javascript - 使用 PHP 和 Json 的动态 dhtmlx 组织图表