mysql删除如果存在

时间:2013-10-22 16:11:06

标签: mysql sql

如果该行存在,则如何删除此select语句。我尝试用删除替换选择,但它没有用。 我是一个需要声明,如果行存在,则删除并返回1。或者,如果在表中找不到该行,则返回0。

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

2 个答案:

答案 0 :(得分:3)

你应该执行两个语句。首先,删除:

DELETE FROM `cancellation` WHERE `ID` = 2 

要获得计数,请立即按照您的DELETE:

SELECT ROW_COUNT()

大于0的任何内容都将成功删除。


更新:PHP中的三值逻辑

如果您正在使用PHP并想使用某些技巧,请使用空值来指示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;
      }
   }
?>

答案 1 :(得分:-2)

删除查询始终返回
0 - &gt;记录未删除时 1 - &gt;成功删除
喜欢:
String sql =&#34;从id = 101的标记中删除;
标志= stmt.executeUpdate(SQL);