テーブルに次のフィールド/構造があります。
(`map`, `authid`, `name`, `time`, `date`, `weapon`)
プレーヤーがゲームでマップを完了するたびに、この情報は、プレーヤーが完了するまでにかかったすべてmap
の情報がtime
、以前に保存された よりも少ない限り、このテーブルの sql 行に保存されtime
ます。map
これは、特定のプレーヤー ( authid
/ )ごとに 1 つの行しか存在しないことを意味しname
ます。
では、私の質問に移ります。私は SQL 初心者なので、マップごとに最低 15 回を選択する実行するクエリを見つけたいと考えています(マップごとのエントリが 15 未満の場合は、それらすべてが返されることは明らかです)。PHP で次のようなクエリを作成できることはわかっています。
SELECT * FROM tablename WHERE map='". $map ."' ORDER BY time LIMIT 15;
map
しかし、コードの後半で操作するために、すべての一意の値を含む多次元配列 (PHP) またはオブジェクト (JS) を作成する必要があります (時間でソートする必要があります)。
{"map1":[
{"authid1":"val",
"name1":"dude1",
"time":"23.46",
"date":"val",
...},
{"authid1":"val",
"name1":"dude2",
"time":"42.33",
"date":"val",
...},
...],
"map2":[
...
...]
}
これを純粋に SQL クエリで行うことができない場合、PHP や JS を利用して目的を達成するにはどうすればよいでしょうか?