【发布时间】:2014-06-13 21:29:05
【问题描述】:
所以基本上我在数据库中插入了这个名为签名的列
ID = 1 价值 = 约翰、迈克尔、萨拉
ID = 2 价值 = 迈克、史蒂夫、约翰 . .
现在在 asp.net 中我不确定如何执行选择命令并知道值是否
约翰、迈克尔、萨拉
里面有“迈克尔”
【问题讨论】:
标签: asp.net sql-server vb.net parsing select
所以基本上我在数据库中插入了这个名为签名的列
ID = 1 价值 = 约翰、迈克尔、萨拉
ID = 2 价值 = 迈克、史蒂夫、约翰 . .
现在在 asp.net 中我不确定如何执行选择命令并知道值是否
约翰、迈克尔、萨拉
里面有“迈克尔”
【问题讨论】:
标签: asp.net sql-server vb.net parsing select
回答你的问题:
CHARINDEX() 在较大的字符串中搜索子字符串,并返回匹配的位置,如果没有找到匹配则返回 0
SELECT * FROM [Table] WHERE CHARINDEX(Signature, 'Michael') > 0
或者
您可以只在查询中使用通配符(在 IF、WHERE 或 ON 之后):
SELECT * FROM [Table] WHERE Signature LIKE '%' + 'Michael' + '%'
但实际上,您应该将此数据存储在单独的相关表中。
【讨论】:
没有。 不要。
为每个签名名称添加一个新表,并为每个签名者使用一行。这就是关系数据库的意义所在。
1 John
1 Michael
1 Sara
2 Mike
2 Steve
2 John
或者更好的是,添加两张新表格 - 一张用于签署人,一张用于与您的初始表格之间的关系
Signatories
1 John
2 Michael
ItemSignatures
ItemID SignatoryID
1 1
1 2
2 1
【讨论】:
select *
from Signature
where value like '%Micheal%'
【讨论】: