このselectステートメントのように行が存在する場合、どうすれば削除できますか。select を delete に置き換えてみましたが、うまくいきませんでした。行が存在する場合、削除して 1 を返す need ステートメントです。または、行がテーブルに見つからない場合は 0 を返します。
SELECT IF ( EXISTS (SELECT * FROM `cancellation` WHERE `ID`=2), 1, 0)
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;
}
}
?>
削除クエリは常に
0 を返します --> レコードが削除されていない場合
1 --> 削除が成功する
と、次のようになり
ます
。