首页 >后端开发 >php教程 >如何高效查找单个数据库列中具有多个值的记录?

如何高效查找单个数据库列中具有多个值的记录?

Susan Sarandon
Susan Sarandon原创
2024-12-28 02:51:10550浏览

How Can I Efficiently Find Records with Multiple Values in a Single Database Column?

查找列中具有多个值的记录

在关系数据库中,通常在单个列中存储多个值。但是,当使用此类列查询数据时,隔离特定值可能具有挑战性。让我们探讨一个场景,其中我们有一个包含“子级”列的表,其中包含用逗号分隔的多个名称。

问题:

考虑下表:

id name children
1 Roberto Michael,Dia
2 Maria John,Alex
3 Mary Alexandre,Diana

目标是找到有一个名叫亚历克斯的孩子的父母。虽然使用“WHERE Children = 'Alex'”是理想的选择,但由于每个单元格中有多个名称,它会失败。使用“WHERE Children LIKE '%Alex%'”会返回额外的不相关匹配。

标准化架构:

要解决此问题,可以通过创建表架构来标准化一个单独的儿童表,每个孩子占一行。然后可以将原始表与子表连接起来,以找到具有特定子表的父表。然而,如果这个解决方案不可行,还有一个替代方案:

FIND_IN_SET 函数:

MySQL FIND_IN_SET() 函数可用于检查特定值是否存在于逗号分隔的列表中。对于这种情况,查询将为:

WHERE FIND_IN_SET('Alex', children)

此查询将返回在“children”列中找到“Alex”的行。

以上是如何高效查找单个数据库列中具有多个值的记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

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