2

IFステートメントの使用に関するMySQLのドキュメントを理解するのに苦労しています。誰かが私のためにそれを簡素化できることを望んでいます。達成したいことを MySQL IF ステートメントを使用して行うのが最適なのか、それとも PHP を使用して行うより良い方法があるのか​​さえわかりません。今のところ、学習/実験用のオンラインタイムカードシステムを作成しようとしています。「Clock in」「Update」「Clock Out」の 3 つのボタンがあります。「出勤」は非常に簡単で、「従業員 ID」と「出勤時間」を「日付」と共にテーブルに追加するだけです。「更新」機能は、私が今いる場所です。だから私がそれでやろうとしていることは次のとおりです:

  1. テーブル内の指定された列にいくつかの PHP 変数を追加します。
  2. 「タイムアウト」列に現在の時刻を追加します。
  3. Add the current time to the "time in" column in a new row with same "employee ID".

So the statement I want to make is going to be something like:

IF "timeOut" is NULL
WHERE "employeeID" AND "currentDate"
THEN 
UPDATE "timeRecords" SET "jobDescription", "timeOut"
WHERE "employeeID" AND "currentDate"
THEN
INSERT "timeIn", "employeeID", "currentDate"

Is there even a way to write this in MySQL? If so could someone give me an example of a working MySQL statement the documentation does not provide enough for me to understand it. Maybe there is a better way to accomplish this I am missing?

4

1 に答える 1

3

SQL で if/then ステートメントを使用するべきではありません。「制御構造」は C、PHP、Java などの言語用です。SQL は「セット」に関するものです。

この特定のケースでは、mysql の「Replace」ステートメントを見てください。おそらくあなたのシナリオには理想的です(「新しい場合は挿入、そうでない場合は更新」):

于 2013-01-13T01:13:17.093 に答える