我有一个成员(member)表。它包括这些行;
姓名 - 姓氏 - 年龄 - friend
我有一个脚本,当有人添加为 friend 时,它会将名称值(例如:约翰)添加到“ friend ”行。它将名字添加到 friend 行。
$myname = ",John,"; // the adder
$name = ",Marry,"; // the person to be added as a friend
mysql_query("UPDATE members SET friends = CONCAT(friends, '".$myname."')
WHERE name='".$name."'") or report();
但是,如果值不存在,我需要添加。例如,如果 John 已经在“ friend ”行中,则不应添加它。
正确的做法是什么?
最佳答案
只需更改 where
子句:
UPDATE members
SET friends = CONCAT(friends, '".$myname."')
WHERE name = '".$name."' AND
find_in_set('".$myname."', friends) = 0;
话虽如此,让我尝试让您相信这是一个非常糟糕的数据库设计。您应该有一个 MemberFriends
表,其中每个成员一行,每个 friend 一行。这是将其存储在关系数据库中的正确方法。它称为联结表。
关于php - mySQL - 不要将相同的数据插入表中的行(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346590/