3

次のような単純なデータベース構造があります。

id       group     stat

123      abc       1
345      fdg       0

データベースに重複した「ID」が存在するかどうかを最初に確認する必要があります。重複がない場合は、新しい行を挿入できます。重複する「id」が存在する場合、「stat」が 1 か 0 かを確認する必要があります。「stat」が 0 に設定されている場合は、何もしたくありません。"stat" が 1 に設定されている場合、新しい行を挿入したいのですが、ユーザーは複数のグループに属することができるため、重複した "id" は問題ありません。

私は完全な初心者なので、助けていただければ幸いです。

4

5 に答える 5

2

これを探していますか?

INSERT INTO Table1
SELECT 123, 'def', 1
  FROM Table1
 WHERE 
( 
  SELECT COUNT(*)
  FROM table1
 WHERE id = 123 AND stat = 1
) > 0
LIMIT 1;

これがSQLFiddle のデモです。秒が発生しないことに注意してくださいINSERT

于 2013-06-14T19:18:31.527 に答える
0

このようなことができます

select * from taske3 where emp_id=$employee_id AND taskdate=$date ;
$num_of_rows = query_rows ;

      if(num_of_rows == 1){
echo "time for the particular project at the given date is already inserted";
          }
    else {
insert into task3 ('e_id','project','task','time','taskdate') VALUES     
     ('$employee_id','$projectassignedto','2','$date');
  }

select query を実行して、エントリが存在する場所を確認します。行をカウントします。エントリが終了する場合はカウントが1になり、それ以外の場合は0になり、それに応じてデータをデータベースに入力できます

于 2013-12-02T06:43:52.520 に答える