如果该行存在,则如何删除此select语句。我尝试用删除替换选择,但它没有用。 我是一个需要声明,如果行存在,则删除并返回1。或者,如果在表中找不到该行,则返回0。
SELECT IF ( EXISTS (SELECT * FROM `cancellation` WHERE `ID`=2), 1, 0)
答案 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);