15

私は検索して検索しましたが、この質問に対する答えが見つかりません。おそらく間違った方法で質問しています。

従業員データベースを照会しています。

役職 ID に基づいて詳細を取得する必要がありますが、この組織には正社員と同じ役職に対して行動する臨時従業員がいるため、その役職 ID に対して複数のレコードが存在する可能性があります。

したがって、位置 ID の現在の占有者を取得するには、位置文字列に一致する最初のレコードを TOP DOWN から選択するクエリが必要です。

これは上から最初に一致したレコードを選択しますか?

SELECT * WHERE `position_id`="00000000" LIMIT 1;

前もって感謝します。

4

3 に答える 3

15

ORDER BYテーブルの個々のレコード間の順序を定義する句が必要です。使用しない場合ORDER BY、レコード間の順序が固定されていないと想定でき、クエリを実行するたびに新しい順序を取得できます。

于 2013-07-07T23:04:03.387 に答える
3

マニュアルから:

引数が 1 つの場合、値は結果セットの先頭から返す行数を指定します。

したがってLIMIT 1、結果セットから最初の行を取得します。結果セットは、使用するエンジンと使用するインデックスによって異なります。最初の行を追加する場合は、それを定義する別の列を作成する必要があります。

于 2013-07-07T23:04:05.090 に答える
2

ランダムに1つだけ取得します*ORDER BY句を追加しない限り、どちらになるかはわかりません。

*もちろん、本当にランダムではありません。これは、レコードの保存方法に依存し、少なくともテーブルまたはその内容を変更しない限り、クエリを繰り返しても毎回同じ結果が返される可能性があります。つまり、確信が持てないということです。

于 2013-07-07T23:03:18.800 に答える