更新sql中的特定列

时间:2016-09-06 08:48:50

标签: mysql sql

如何通过提供输入来更新单个列。这是我的代码。

$sql="UPDATE isourcetest SET hostname='".$_POST['fname']."', 
IP='".$_POST['Iname']."', location='".$_POST['Lname']."', 
network='".$_POST['nname']."', OSversion='".$_POST['oname']."', 
RAM='".$_POST['rname']."',CPUcore='".$_POST['cname']."',
CPUspeed='".$_POST['cpname']."', 
Hardwaremodel='".$_POST['hname']."'
WHERE hostname='".$_POST['fname']."'";

但是如果我尝试更新列,则会更新整行。请建议一个解决方案。我是sql中的新手。

4 个答案:

答案 0 :(得分:1)

您只需要编写一列的更新,例如hostname

$sql="UPDATE isourcetest SET hostname='".$_POST['fname']."' 
WHERE hostname='".$_POST['fname']."'";

答案 1 :(得分:0)

使用 COALESCE()

$sql="UPDATE isourcetest SET hostname=COALESCE('".$_POST['fname']."', hostname), 
IP=COALESCE('".$_POST['Iname']."', IP),.....etc

WHERE hostname='".$_POST['fname']."'";

让我知道它是否有效

答案 2 :(得分:0)

试试这个..

$sql="UPDATE isourcetest SET ";
if($_POST['fname'] != '')
$sql."hostname='".$_POST['fname']."',"; 
.
.
if($_POST['hname'] != '')
$sql."Hardwaremodel='".$_POST['hname']."',";

rtrim($sql,',');

$sql."WHERE hostname='".$_POST['fname']."'";

答案 3 :(得分:0)

下面的代码对我有用。

>cscript.exe /nologo test.vbs "3,8,1,2"
8

谢谢大家的支持。