如果字符串尚不存在,我正在尝试将字符串附加到字段:
mysql_query("UPDATE gals4 SET tags = CONCAT(tags, '$instag') WHERE id = '$instagnum' AND tags NOT LIKE '$instag'");
这只是附加到“标签”,无论它是否存在于现场。我在这里做错了什么?
要回答您的直接问题,您必须将字符 % 放在匹配字符串的开头和结尾:
"AND tags NOT LIKE '%$instag%'"
但是,您应该知道这是在 SQL 数据库中存储数据的一种糟糕的方式。至少存在三个问题:
正确的解决方案是在数据库中添加至少一个表,称为 gals_tags,包含 galid 和 tag 列。每个标签插入一条记录到该表中。如果 gal 有多个标签,则为每个标签添加一条记录。
您需要另一个变量 $instagwildcard ,它是 $instag 但在 $instag 之后(可能之前)有一个 %
如所写,您的选择正在寻找与 $instag 不完全匹配的字符串 - 我假设您还希望排除在字符串中某处包含 $instag 而不是完全匹配的字符串...。
$instagwildcard = "%" . $instag . "%";
mysql_query("UPDATE gals4 SET tags = CONCAT(tags, '$instag') WHERE id = '$instagnum' AND tags NOT LIKE '$instagwildcard'");
但我也同意拉里的评论。