2
SELECT * 
FROM  `experience` 
WHERE  `reqexp` <>  '4793'
ORDER BY  'lvl' DESC 
LIMIT 1

これが私がやりたいことです。私はクライアント向けにオンライン ゲームを作成しており、ランダムな値で mysql クエリを使用して、その量の経験に関連付けられたレベルを見つける必要があります。この場合、プレイヤーの適切なレベルを判断できるように、データベースに既に存在する 4793 よりも小さい次の値を見つける必要があります。何か案は?

4

1 に答える 1

4

order by lvl(逆引用符ではなく一重引用符で誤って引用されて'いるため、文字列リテラルとして扱われます) の代わりに、 order byreqexp DESCして values のみを探す必要があります< 4793

SELECT *
FROM `experience`
WHERE `reqexp` < 4793
ORDER BY `reqexp` DESC
LIMIT 1

でサブオーダーする必要がある場合はlvl、次のようにします。

ORDER BY `reqexp` DESC, `lvl`
于 2012-09-03T01:23:00.957 に答える