0

このselectステートメントのように行が存在する場合、どうすれば削除できますか。select を delete に置き換えてみましたが、うまくいきませんでした。行が存在する場合、削除して 1 を返す need ステートメントです。または、行がテーブルに見つからない場合は 0 を返します。

SELECT IF ( EXISTS (SELECT * FROM `cancellation` WHERE `ID`=2), 1, 0)  
4

2 に答える 2

3

2 つのステートメントを実行する必要があります。まず、あなたの削除:

DELETE FROM `cancellation` WHERE `ID` = 2 

カウントを取得するには、すぐに次の DELETE を実行します。

SELECT ROW_COUNT()

0 より大きい値はすべて正常に削除されます。


更新: PHP の 3 つの値のロジック

PHP を使用していて、トリックを使用したい場合は、null 値を使用して DELETE プロセスの失敗を示します。削除操作が失敗した場合、PHP の mysqli_query は false を返すので、それを使用して NULL の戻り値を強制することができます。

<?php
   function zapper ($row_id) {
      if ($result = mysqli_query($connection, "DELETE FROM `cancellation` WHERE `ID` = " . $row_id) === TRUE) {
         if (mysqli_affected_rows($connection) > 0) {
            // delete successful - some rows were deleted
            return TRUE;
         } else {
            // delete successful - no rows were deleted
            return FALSE;
         }
      } else {
         // delete unsuccessful
         return NULL;
      }
   }
?>
于 2013-10-22T16:19:44.183 に答える
-2

削除クエリは常に
0 を返します --> レコードが削除されていない場合
1 --> 削除が成功する
と、次のようになり
ます

于 2015-01-23T11:01:28.703 に答える