检查CSV MySQL行中的值

时间:2013-03-10 18:02:41

标签: php mysql sql regex pdo

我将用户ID值存储在以|分隔的表字段中(user_id1 | user_id2 | user_id3 | user_id17)

将在某些位置添加和删除此字段中的用户ID。

如何使用查询检查字段中是否存在当前用户ID? 它当然需要完全匹配。无法查找user_id1并找到user_id17

我知道我可以使用SELECT查询,爆炸该字段,然后使用in_array但是如果有办法使用查询来做它会更好。

我想我会解释我在做什么:我为一个小型私人网站(7个用户)创建了一个论坛,但是将其编码为更大规模。

我的表结构非常好:forum_categories,forum_topics,forum_posts。在表之间使用外键来删除和更新查询。

我正在寻求帮助的是将每个用户的主题标记为未读。我可以使用topic_id和amp;创建一个新表。 user_id,每一个都是一个新行,但对于很多用户来说并不好用。主题。

如果有人有更好的解决方案,我就是全力以赴。或者可以向我证明每个user_id有一行是最好的方式然后我会更愿意这样做。

1 个答案:

答案 0 :(得分:1)

我认为你想跟踪阅读信息,而不是相反。如果您跟踪了未读消息,则每次添加用户时,您都必须将该用户添加到每个主题"未读列表"。

我像我的评论建议那样研究了SMF。他们使用单独的表来跟踪阅读消息。

您需要一个包含user_idtopic_id的简单表格。当用户阅读主题时,请确保该用户的表格中有一行。

使用单独表格的另一个原因。查询数据库中的2个int值比使用LIKE %语句要快得多。