gpt4 book ai didi

sql - 数据库字段中的逗号分隔值

转载 作者:太空狗 更新时间:2023-10-30 01:47:49 25 4
gpt4 key购买 nike

我有一个产品表。该表中的每一行对应一个产品,并由唯一的 ID 标识。现在每个产品都可以有多个与该产品关联的“代码”。例如:

Id     |    Code----------------------0001   |   IN,ON,ME,OH0002   |   ON,VI,AC,ZO0003   |   QA,PS,OO,ME

我想做的是创建一个存储过程,这样我就可以传入一个代码,如“ON,ME”,并让它返回包含“ON”或“ME”代码的每个产品。由于代码以逗号分隔,我不知道如何拆分和搜索它们。这可能仅使用 TSQL 吗?

编辑:这是一个关键任务表。我无权更改它。

最佳答案

您应该将代码存储在单独的表中,因为您拥有多对多关系。如果将它们分开,那么您将能够轻松地进行检查。

可以在您现在拥有的系统类型中执行此操作,但需要对列进行文本搜索,每行进行多次搜索才能工作,随着数据的增长,这将产生巨大的性能问题。

如果您尝试沿着当前路径走下去:您将不得不拆分输入字符串,因为无法保证每条记录上的代码与输入参数的顺序相同(或连续)。那么你将不得不做一个

Code LIKE '%IN%'
AND Code Like '%QA%'

用附加语句查询您要检查的每个代码。非常低效。

下面的UDF思路也是一个不错的idea。但是,根据数据的大小以及查询和更新的频率,您也可能会遇到问题。

是否可以创建一个额外的标准化表,并按计划(或基于触发器)同步以供您查询?

关于sql - 数据库字段中的逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/738133/

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