$value==""?sql=update tablename set name='$name' where id='$id':sql=update tablename set name='$name', value='$value' where id='$id'; 疯了,你要让MySQL控制value的空与否?就是数据库支持自定义函数,也达不到你的要求!!!一条SQl??
foolbirdflyfirst(湖水清澈)你确定一定能行?不会造成语法错误(我说的是$value为空的时候)……我想到一个办法,就是这样写:sql="update tablename set name='$name'"; if ($value!="") sql.=", value='$value'"; sql.=" where id='$id'"; 好像这样就OK?算得上是一条了吧?
这分明是PHP……弄个存储过程吧
$sql="update tablename set name={$name} "; if($value!=''){ $sql.=" value='$value' where value!='' " }else{ $sql.=" where "; } $sql.=" id={$id}"
lz可以自己实践一下,当然需求必须明确你确定一定能行?不会造成语法错误(我说的是$value为空的时候)…… ==================================== :),说的是。 "update tablename set name={$name},value=if(value!='',value,'{$value}') where id={$id}"
$sql="update tablename set name={$name} "; if($value!=''){ $sql.=" value='$value' where value='' " }else{ $sql.=" where "; } $sql.=" id={$id}";这样试试,上面那个有点问题
经验证,湖水清辙提供的方法可行.结帖,已给分.update tablename set name={$name},value=if(value!='',value,'{$value}') where id={$id}另外我还找到另一个方法,一并帖出. update tablename set name='$name', value=CASE WHEN value IS NULL THEN '$value' ELSE value END where id='$id';
if ($value!="") sql.=", value='$value'";
sql.=" where id='$id'"; 好像这样就OK?算得上是一条了吧?
if($value!=''){
$sql.=" value='$value' where value!='' "
}else{
$sql.=" where ";
}
$sql.=" id={$id}"
====================================
:),说的是。
"update tablename set name={$name},value=if(value!='',value,'{$value}') where id={$id}"
if($value!=''){
$sql.=" value='$value' where value='' "
}else{
$sql.=" where ";
}
$sql.=" id={$id}";这样试试,上面那个有点问题
http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.htmlhttp://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.htmlmysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'
update tablename set name='$name', value=CASE WHEN value IS NULL THEN '$value' ELSE value END where id='$id';