使用mysql执行此查询的最佳算法
问题描述:
Iam正在寻找使用mysql执行此查询的最佳算法。使用mysql执行此查询的最佳算法
SELECT room_no,fname,lname,title,gender,age,text
FROM travelers WHERE reservation_id='9911'
ORDER BY joinnum ASC, id ASC
结果
room_no
1 infant tess Mr M 0
1 infant2 te1ss Mr M 0
2 tes3 test66 Mr M 0
2 tes3 test Mr M 0
2 ss33 test66 Mr M 0
我想用它给我的指标取决于room_no例如每个旅行者SQL功能添加另一列
traveler_order room_no
0 1 infant tess Mr M 0
1 1 infant2 te1ss Mr M 0
0 2 tes3 test66 Mr M 0
1 2 tes3 test Mr M 0
2 2 ss33 test66 Mr M 0
这意味着给索引的foreach根据房间的行,即房间1有2个旅行者的选择陈述将给予行0的索引0和行1的1,但行2开始新的房间,因此它会给第2行索引0 1 2 ......等等,希望能帮助我解决这个问题。
更多描述
我需要的是根据例如房间的房间号发出命令的foreach旅行者1具有2个出行因此第1行(旅行者1)将带索引0处的旅行者2将(索引1 )然后在房间2开始有(3位旅客)订单将旅客1在房间2取指数0和旅客2在房间2将采取指数1和旅客3在房间2将采取指数2如上面的第二个表
答
SELECT @seq := @seq + 1 AS traveler_order,
room_no, fname, lname, title, gender, age, text
FROM travelers
JOIN (SELECT @seq := -1) AS initialize
WHERE reservation_id='9911'
ORDER BY joinnum ASC, id ASC
另外,
INDEX(reservation_id, joinnum, id)
性能需要
。
如果您使用'ctrl-K',您可以将文本格式设置为代码。或者只是给每一行添加4个空格 –
听起来你需要一个计数器。但是你的问题还不清楚,请尝试重新措辞以便我们更好地理解要求。 – htm11h
你'订购'有'joinnum'和'id'哪一个告诉你房间预订时的订单? –