从SET数据类型列中删除字符

时间:2014-05-13 16:20:40

标签: php mysql

我有一个存储不同物理位置的位置数据的数据库。根据这些建筑物的用途,单个位置可用于多达九个不同的预定“类别”;这些类别中的每一个都对应一个数字。我有一个函数,它接受用户输入并将正确的数字添加到列。此列是SET数据类型(重要的是我按升序保留这些数字。)

我希望能够从SET中删除一个特定号码而不触及SET中的任何其他号码。我尝试过这些方法:

"UPDATE locations SET type = REPLACE(type,$type,'') WHERE locationname = '$value'";

但是,当我运行此查询时似乎没有任何事情发生,并且没有报告错误。

2 个答案:

答案 0 :(得分:0)

不知道表格布局,我首先建议正确引用:

$sql = "UPDATE `locations` SET `type` = REPLACE(`type`,'" . $type . "','') 
   WHERE `locationname` = '" . $value . "'";

接下来会很高兴知道日志中是否有任何错误以及值是什么。

答案 1 :(得分:0)

最好使用带有两列的第二个表:一个是建筑物的ID,另一个是带有类别的。如果您将值列表存储在一个字段中,则会遇到麻烦。违反数据库的第一个普通形式(http://en.wikipedia.org/wiki/First_normal_form)通常是一个糟糕的数据库设计。