我有一个UPDATE查询并使用Ajax,我想知道任何值是否为空我只能更新数据库中非空的值。我不知道是否可以使用if语句或其他东西来检查以跳过空值。我知道我可以添加另一个表单元素,但只是想知道是否有其他解决方案。
仅当数据是来自前端表单的POST时。如果数据不是POST,则不会更新此Title
='。$ title。',
$id = $_POST['id'];
$title = "";
$description = $_POST['Description'];
$date = $_POST['Date'];
$query = 'UPDATE user SET
`id` = '.$id.',
`Title` = '.$title .',
`Description` = '.$description.',
`Date` = '.$date =.'
WHERE `id` = '.$id;
$result = mysql_query($query) or die("<b>A fatal MySQL error occured</b>.<br />Query: ".$query."<br />Error: (".mysql_errno().") ".mysql_error());
更新:这对我有用。谢谢卡里姆达拉夫
$ query =“UPDATE用户SET
Title
=合并($ title,Title
)等...
答案 0 :(得分:5)
使用Coalesce尝试。
$query = " UPDATE user
SET
`Title` = CASE WHEN `Title`='' or `Title` IS NULL THEN '$title' END,
`Description` = CASE WHEN `Description`='' Or `Description` IS NULL THEN '$description' END,
`Date` = CASE WHEN `Date`='' Or Date` IS NULL THEN '$date' END
WHERE `id` = '".$id."' ";
或:
$query = " UPDATE user
SET
`id` = Coalesce('$id''".$id."' , NULLIF(`id`,'')),
`Title` = Coalesce('$title''".$title."',NULLIF(`Title`,'') ) ,
`Description` = Coalesce('$description''".$description."' , NULLIF(`Description`,'') ) ,
`Date` = Coalesce('$date''".$date."',NULLIF(`Date`,''))
WHERE `id` = '$id''".$id."' ";
答案 1 :(得分:1)
不确定:你有数据并想要更新,但只有当数据库中的某些数据为空时? 在案例中只有一个地方:
$query = 'UPDATE user SET
`id` = '.$id.',
`Title` = '.$title .',
`Description` = '.$description.',
`Date` = '.$date =.'
WHERE `id` = '.$id.' AND Title = '';
例如
此致 彼得
答案 2 :(得分:1)
$query = 'UPDATE user SET
`id` = '.$id.',
`Title` = COALESCE(NULLIF("'.$title.'", ""),`Title`),
`Description` = '.$description.',
`Date` = '.$date =.'
WHERE `id` = '.$id;