を避けるために、私は良い選手の半分のIDを取得しようとしていますが、唯一のnode_idに含まれたもの= 28同じクエリのmySQL
" SELECT * FROM
(SELECT npid.player_id
FROM node_to_player_ids npid
INNER JOIN players_gameplay_info pg
ON npid.player_id = pg.player_id
WHERE npid.node_id = 28
ORDER BY pg.score_collected ASC) AS selectedPlayers
LIMIT (SELECT COUNT(*) FROM selectedPlayers)/2"
はそう、カウントするために約1000個の000のエントリーがあります私はそれを変数に格納したかったのですが、その中に複数の行を格納することはできません。@myLocalVariable
1つのレコードしか格納できませんでした。しかし、それだけで半分のレコードをカウントするために選択AS selectedPlayers
に私は私がplayer_idsの得られた質量を再使用し、同じ選択クエリを実行するよりも、それらの上ではなく、反復処理を望んだそのように解釈することが可能です
しかし、私はエラー
'SQLSTATE[42000]: Syntax error or access violation: 1064 near '(SELECT COUNT(*) FROM selectedPlayers)/2' at line 10'
複数のIDを格納する場合は、変数ではなく一時テーブルに格納します。 –
私はロックを使用することに絡み合って、遅くなる(同時に実行されているスクリプトの100kインスタンスがあります)と思うので、私は書き込みを避けたいと思います。私はちょうど行の数を知る必要があります私は半分 – Kari