どのIDが返されますか(1、2、または3)?
A:サーバーは、必要なIDと同じ名前のすべてのレコードを選択します(おそらく、フェッチが最も速く、予測できません)。公式ドキュメントを引用するには:
この
このクエリはどのIDでORDERBYになりますか(返されるのと同じですか?...質問1を参照)?
取得する結果を予測できないため、取得したデータが返される順序を確認することは意味がありません。ただし、予測できないID列でソートされた結果が得られる可能性が非常に高くなります。
どのIDが返される/注文に使用されるかを制御できますか?例えば。最大のID、またはグループからの最初のIDを返します。
この時点では、できないと想定する必要があります。ドキュメントをもう一度お読みください。
さらに明確にする:不適切に使用されたGROUPBY句の結果を予測することはできません。 MySQLの主な問題は、非標準的な方法で使用できることですが、その機能の使用方法を知る必要があります。その背後にある主なポイントは、常に同じであることがわかっているフィールドでグループ化することです。 EG:
SELECT id, name, COUNT( * ) AS frequency
FROM table
GROUP BY id
ここで、あなたはname
を知っています id
として一意になります name
を機能的に決定します 。したがって、あなたが知っている結果は有効です。名前でもグループ化した場合、このクエリはより標準的ですが、MySQLではパフォーマンスが少し低下します。
最後に、私の経験では、選択されたフィールドとグループ化されていないフィールドに対する非標準のクエリの結果は、通常、GROUP BY
を適用した結果になることを考慮に入れてください。 次に、ORDER BY
その分野で。そのため、何度も思われる 働くために。ただし、テストを続けると、最終的にはこれが95%の確率で発生することがわかります。そして、あなたはその数に頼ることはできません。