考虑以前的值的Mysql Update

时间:2015-01-10 03:55:13

标签: mysql sql

这是我的表

SNo | UserId
1    | 1,2,3,

如果我给出值1,则不应更改值,因为它已经为1,如果我给4它应该更新为1,2,3,4,并且如果我给出值{{ 1}}它应更新为3,5

不应删除旧值,并且只应在最后一个逗号后面有新值

对于实例,如果我输入值1,4

我尝试了查询

1,2,3,5

但它会取代

,表格将是

UPDATE MyTable SET UserID='1,4' WHERE SNo = '1'

如果我在查询开头取旧值并用输入连接,那么

然后值为SNo | UserId 1 | 1,4,

1,2,3,1,4,

如何构建查询以满足我的所有条件。

2 个答案:

答案 0 :(得分:1)

使用此

UPDATE `users` SET `namedata` = CONCAT('1,2,3,4','5') WHERE FIND_IN_SET('3',namedata)

答案 1 :(得分:1)

试试这个......

<?php
$os = array("1", "2", "3", "4");
$new="6";
$testdata=explode(",",$new);
for($i=0;$i<count($testdata);$i++)
{
if(in_array($testdata[$i],$os))
{

} else {
$os[]=$testdata[$i];
}
}
$final=implode(",",$os);

UPDATE MyTable SET UserID='$final' WHERE SNo = '1';
?>