Php SQL布尔关系
我有一个表Php SQL布尔关系,php,mysql,sql,Php,Mysql,Sql,我有一个表dislikes,其中包含两列,idone和idtwo 这些是来自用户的唯一ID,例如: | idone | idtwo | ----------------- | 5 | 4 | 这意味着id=5的用户不喜欢id=4的用户。我在PHP中使用的是一个数组,其中包含当前用户选择为不喜欢的所有用户的ID 所以说dislikes={1,2,3},这意味着当前用户不喜欢用户1,2或3。数据库中有未知数量的用户 因此,如果用户1选择不喜欢用户2和用户3(这是通过HTML下拉菜单
dislikes
,其中包含两列,idone
和idtwo
这些是来自用户的唯一ID,例如:
| idone | idtwo |
-----------------
| 5 | 4 |
这意味着id=5的用户不喜欢id=4的用户。我在PHP中使用的是一个数组,其中包含当前用户选择为不喜欢的所有用户的ID
所以说dislikes={1,2,3}
,这意味着当前用户不喜欢用户1,2或3。数据库中有未知数量的用户
因此,如果用户1选择不喜欢用户2和用户3(这是通过HTML下拉菜单完成的),我会将不喜欢={2,3}
传递给处理此数据的PHP页面
我希望PHP页面随后添加条目(1,2)
和(1,3)
。这里是第一个问题,如何确保只添加唯一的条目
也就是说用户1改变了他不喜欢用户2的事实。然后,我将
厌恶={3}
传递到php页面,并且必须以某种方式删除所有条目(1,!3)
,即用户1不喜欢除用户3以外的任何人的所有条目。我怎样才能做到这一点?或者有更好的方法吗?因为您使用的是MySQL,最简单的方法可能是使用主键或唯一索引(idone、IDTOW)来代替INSERT
或者,在更新时,您可以运行执行以下任一操作的事务:
- 删除此用户的现有行、添加所有行、提交
- 选择现有行,从本地集中删除要复制的行,仅添加新行,提交
替换为
。3. <代码>插入到。。。在重复密钥更新时。。。也许我错过了更多的选择……我知道,我从来都不知道如何将替换为,但同时我还需要删除所有不再不受欢迎的条目。那么,最好的方法不是做你答案的第一个选项吗?@Dan:是的,如果你还需要删除行,那么在我看来,最简单的方法就是删除所有行,然后添加回你知道的行。确保使用事务。请原谅我的天真,什么是事务?@Dan:它保证您的多个查询序列作为一个事件执行,否则查询不会改变您的数据库: