我有一个存储不同物理位置的位置数据的数据库。根据这些建筑物的用途,单个位置可用于多达九个不同的预定“类别”;这些类别中的每一个都对应一个数字。我有一个函数,它接受用户输入并将正确的数字添加到列。此列是SET数据类型(重要的是我按升序保留这些数字。)
我希望能够从SET中删除一个特定号码而不触及SET中的任何其他号码。我尝试过这些方法:
"UPDATE locations SET type = REPLACE(type,$type,'') WHERE locationname = '$value'";
但是,当我运行此查询时似乎没有任何事情发生,并且没有报告错误。
答案 0 :(得分:0)
$sql = "UPDATE `locations` SET `type` = REPLACE(`type`,'" . $type . "','')
WHERE `locationname` = '" . $value . "'";
接下来会很高兴知道日志中是否有任何错误以及值是什么。
答案 1 :(得分:0)
最好使用带有两列的第二个表:一个是建筑物的ID,另一个是带有类别的。如果您将值列表存储在一个字段中,则会遇到麻烦。违反数据库的第一个普通形式(http://en.wikipedia.org/wiki/First_normal_form)通常是一个糟糕的数据库设计。