gpt4 book ai didi

php - 使用 PHP 将逗号分隔列表与 MySQL 表进行比较

转载 作者:行者123 更新时间:2023-11-30 23:30:18 25 4
gpt4 key购买 nike

我有一个 HTML 表单,它接受以逗号分隔的标签列表,它的工作方式与 stackoverflow 上的表单一样。我还有一个 MySQL 表,其中包含属于每个用户的标签列表。用户可以在他们的个人资料中更新他们的标签,所以我想做的是自动从 MySQL 表中删除任何标签,如果它不再存在于列表中

例如,用户在网络表单中输入以下内容:

trance, house, electronica, dubstep, club

然而,MySQL 表有这个

userid    tag
1 trance
1 house
1 electronica
1 dubstep
1 garage

我想从 MySQL 中删除车库标签并添加“俱乐部”。

还值得注意,虽然这些标签在我上面的示例中按顺序出现,但情况并非总是如此,所以我不能同时依赖数组索引位置,例如。

我意识到我可能可以使用 foreach 遍历逗号分隔列表并生成删除语句,然后从头开始重新插入所有标签,但我觉得可能有更好的方法来做到这一点。

预先感谢您的指导。

戴夫

最佳答案

您只需将逗号分隔列表(在正确转义和引用后)放入 NOT IN() 子句中,并在 DELETE 语句中使用它,如下所示.顺序无关紧要。

DELETE FROM tags WHERE userid = 1 AND tag NOT IN ('trance', 'house', 'electronica', 'dubstep', 'club');

如何转义和引用逗号分隔值将取决于您使用的数据库 API,无论是 PDO、MySQLi 还是旧的(即将弃用的)mysql_*() 函数。

我会注意到您做对了,每行存储一个标签,而不是将它们作为 CSV 列表存储在一列中。

关于php - 使用 PHP 将逗号分隔列表与 MySQL 表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11063825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com