【发布时间】:2018-06-26 11:53:42
【问题描述】:
我在数据库的表中有一个列,其中字符串以以下形式存储:1,5,10。在我的应用程序中,我想检查此列中是否存在变量。
如果我这样检查:
table.column.Contains(variable)
如果variable = 0 那么我会得到正确的,因为10 包含0 但它不正确。
我知道我可以这样做:
table.column.Split(',')
但是如何检查table.column 字符串中是否有任何部分与变量相等?
【问题讨论】:
-
说实话,真正的解决方法是不要将数据存储在这样的数据库中。相反,您需要一个包含值和一对多关系的单独表。
-
split 是正确的做法。听起来您的数据库架构也有缺陷。
-
我知道但无法更改数据库架构.... 是否有针对该架构的解决方案?
-
在列数据中使用逗号是一种糟糕的设计。
-
还有什么是
table,如果这是EF,并且您希望查询在数据库上执行,那么Split将不起作用。您需要测试它包含“,0”或以“0”开头或以“,0”结尾或等于“0”的可能性。