首页 >数据库 >mysql教程 >如何从数据库中以逗号分隔的列有效检索用户名?

如何从数据库中以逗号分隔的列有效检索用户名?

Susan Sarandon
Susan Sarandon原创
2024-12-17 13:32:18639浏览

How Can I Efficiently Retrieve Usernames from a Comma-Separated Column in a Database?

从逗号分隔列中提取用户名

考虑一个场景,其中您有多个表:tblA(用户)、tblB(用户名)、和 tblC(以逗号分隔的用户 ID 的命名法)。目标是在搜索特定命名法值时检索所有用户名。

现有方法和限制

提供的查询尝试使用交叉联接和子字符串函数从逗号分隔值中提取第一个用户 ID。然而,当有多个用户 ID 与命名法关联时,这种方法效率低下,并且不能提供准确的结果。

规范化架构和改进的查询

建议通过引入连接表来标准化数据库模式。 tblC_user 表应包含两列:c_id(引用 tblC)和 userID(引用 tblB)。这将消除 tblC 中以逗号分隔的用户 ID 的需要。

以下查询演示如何使用规范化模式提取用户名:

SELECT *
FROM tblC c
JOIN tblC_user cu ON (c.id = cu.c_id)
JOIN tblB b ON (b.userid = cu.userid)
WHERE c.nname = "new1";

此查询将有效检索所有关联的用户名具有“new1”命名法。

的好处规范化

规范化数据库模式具有多种优势:

  • 提高数据完整性和准确性
  • 更快的查询并减少处理时间
  • 简化数据维护和修改
  • 维护子级的级联关系记录

以上是如何从数据库中以逗号分隔的列有效检索用户名?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn