首页 > 解决方案 > 比较值时的 SQL IN 子句问题

问题描述

我在表 x 中有以下列,其中 SharedBagsIds 包含字符串 (1,3,4)

我正在尝试编写一个包含 in 子句的 SQL 查询,如下所示

select * from .... where id in (x.SharedBagsIds)

但是这条线id in (x.SharedBagsIds)正在产生错误 Conversion failed when converting the varchar value '1,3,4' to data type int.

有没有办法解决这个问题?

在此处输入图像描述

标签: c#sqlasp.netasp.net-mvcentity-framework

解决方案


您的表格不是第一范式,它规定每个单元格都应该是原子的。'SharedBagsIds' 包含多个值,应始终避免。阅读 SQL 中的多对多关系并相应地修改表。

假设我有表 Teacher 和另一个表 student,然后为了显示它们之间的关系,创建另一个表,其中包含 teacherid 和 studentid 作为复合主键。因此,您可以显示单独的映射,而无需在单个单元格中放置多个 id,例如 1、3、4。

希望这可以帮助。


推荐阅读