C# 如何根据两个逗号分隔值列中的任意一个值获取记录
可能问题的标题没有正确定义我真正想问的问题。下面是对我的问题的更具体的描述 我的数据库中有一个下表C# 如何根据两个逗号分隔值列中的任意一个值获取记录,c#,sql,asp.net,C#,Sql,Asp.net,可能问题的标题没有正确定义我真正想问的问题。下面是对我的问题的更具体的描述 我的数据库中有一个下表User,其中有一列,即Category,包含多个值,但用逗号分隔 S.no. Name Category 1 Ankit Ex Soldier, Senior Citizen 2 Ritu Widow, Senior Citizen 3 Akash Ex soldier 我想在分类的基础上搜索记录
User
,其中有一列,即Category
,包含多个值,但用逗号分隔
S.no. Name Category
1 Ankit Ex Soldier, Senior Citizen
2 Ritu Widow, Senior Citizen
3 Akash Ex soldier
我想在分类的基础上搜索记录
如果我搜索的话
select * from User where Category='Senior Citizen'
然后它必须显示安基特和日图的记录。
如何做到这一点。
plz帮助试试这个:
select * from User where Category like '%Senior Citizen%'
试试这个:
select * from User where Category like '%Senior Citizen%'
试试这个:
select * from User where Category like '%Senior Citizen%'
试试这个:
select * from User where Category like '%Senior Citizen%'
您需要操作员:-
select * from User where Category LIKE '%Senior Citizen%'
您需要操作员:-
select * from User where Category LIKE '%Senior Citizen%'
您需要操作员:-
select * from User where Category LIKE '%Senior Citizen%'
您需要操作员:-
select * from User where Category LIKE '%Senior Citizen%'
但您应该为类别使用单独的表
但您应该为类别使用单独的表
但您应该为类别使用单独的表
但是你应该使用一个单独的表来分类。就像Kiss László写的那样,你应该在两个表中分开信息。这方面的专业术语称为“规范化”。最重要的是要知道1NF、2NF和3NF(详细信息请阅读) 因此,它应该如下所示:
Table Persons
PersonId Name
1 Ankit
2 Ritu
3 Akash
Table Categories
CategoryId Name
1 Ex. Soldier
2 Senior Citizen
3 Widow
Table PersonCategories
PersonId CategoryId
1 1
1 2
2 2
2 3
3 3
为什么要这样做?
在我看来,最大的原因是表现。我用您当前的方法制作了一些测试表,其中包含20k条目的数据集。查询的执行大约需要200毫秒才能返回。使用上面的模式,在大约1毫秒内执行以下查询
SELECT
*
FROM
Persons AS p
JOIN
PersonCategories AS pc ON p.PersonId = pc.PersonId
JOIN
Categories AS c on pc.CategoryId = c.CategoryId
WHERE
c.Name = 'Senior Citizen'
为什么这个查询速度要快得多?
因为我们可以很容易地在我们的专栏上使用。在上面的模式中,Persons.PersonId和Categories.CategoryId是其表的主键列。因此,将它们用作联接操作的列具有最小的成本。PersonCategories表的两列都是外键(确保有效的数据库状态并提高性能)。最后,Categories.Name列也有一个索引
这种方法可能不好吗?
在大多数情况下,这是一条路要走。不这样做的一个原因是,如果您必须处理大量插入。此模式中的插入成本要高得多,因为所有索引都需要在插入后更新 就像基斯·拉斯洛(Kiss László)写的那样,你应该将信息分为两个表。这方面的专业术语称为“规范化”。最重要的是要知道1NF、2NF和3NF(详细信息请阅读) 因此,它应该如下所示:
Table Persons
PersonId Name
1 Ankit
2 Ritu
3 Akash
Table Categories
CategoryId Name
1 Ex. Soldier
2 Senior Citizen
3 Widow
Table PersonCategories
PersonId CategoryId
1 1
1 2
2 2
2 3
3 3
为什么要这样做?
在我看来,最大的原因是表现。我用您当前的方法制作了一些测试表,其中包含20k条目的数据集。查询的执行大约需要200毫秒才能返回。使用上面的模式,在大约1毫秒内执行以下查询
SELECT
*
FROM
Persons AS p
JOIN
PersonCategories AS pc ON p.PersonId = pc.PersonId
JOIN
Categories AS c on pc.CategoryId = c.CategoryId
WHERE
c.Name = 'Senior Citizen'
为什么这个查询速度要快得多?
因为我们可以很容易地在我们的专栏上使用。在上面的模式中,Persons.PersonId和Categories.CategoryId是其表的主键列。因此,将它们用作联接操作的列具有最小的成本。PersonCategories表的两列都是外键(确保有效的数据库状态并提高性能)。最后,Categories.Name列也有一个索引
这种方法可能不好吗?
在大多数情况下,这是一条路要走。不这样做的一个原因是,如果您必须处理大量插入。此模式中的插入成本要高得多,因为所有索引都需要在插入后更新 就像基斯·拉斯洛(Kiss László)写的那样,你应该将信息分为两个表。这方面的专业术语称为“规范化”。最重要的是要知道1NF、2NF和3NF(详细信息请阅读) 因此,它应该如下所示:
Table Persons
PersonId Name
1 Ankit
2 Ritu
3 Akash
Table Categories
CategoryId Name
1 Ex. Soldier
2 Senior Citizen
3 Widow
Table PersonCategories
PersonId CategoryId
1 1
1 2
2 2
2 3
3 3
为什么要这样做?
在我看来,最大的原因是表现。我用您当前的方法制作了一些测试表,其中包含20k条目的数据集。查询的执行大约需要200毫秒才能返回。使用上面的模式,在大约1毫秒内执行以下查询
SELECT
*
FROM
Persons AS p
JOIN
PersonCategories AS pc ON p.PersonId = pc.PersonId
JOIN
Categories AS c on pc.CategoryId = c.CategoryId
WHERE
c.Name = 'Senior Citizen'
为什么这个查询速度要快得多?
因为我们可以很容易地在我们的专栏上使用。在上面的模式中,Persons.PersonId和Categories.CategoryId是其表的主键列。因此,将它们用作联接操作的列具有最小的成本。PersonCategories表的两列都是外键(确保有效的数据库状态并提高性能)。最后,Categories.Name列也有一个索引
这种方法可能不好吗?
在大多数情况下,这是一条路要走。不这样做的一个原因是,如果您必须处理大量插入。此模式中的插入成本要高得多,因为所有索引都需要在插入后更新 就像基斯·拉斯洛(Kiss László)写的那样,你应该将信息分为两个表。这方面的专业术语称为“规范化”。最重要的是要知道1NF、2NF和3NF(详细信息请阅读) 因此,它应该如下所示:
Table Persons
PersonId Name
1 Ankit
2 Ritu
3 Akash
Table Categories
CategoryId Name
1 Ex. Soldier
2 Senior Citizen
3 Widow
Table PersonCategories
PersonId CategoryId
1 1
1 2
2 2
2 3
3 3
为什么要这样做?
在我看来,最大的原因是表现。我用您当前的方法制作了一些测试表,其中包含20k条目的数据集。查询的执行大约需要200毫秒才能返回。使用上面的模式,在大约1毫秒内执行以下查询
SELECT
*
FROM
Persons AS p
JOIN
PersonCategories AS pc ON p.PersonId = pc.PersonId
JOIN
Categories AS c on pc.CategoryId = c.CategoryId
WHERE
c.Name = 'Senior Citizen'
为什么这个查询速度要快得多?
因为我们可以很容易地在我们的专栏上使用。在上面的模式中,Persons.PersonId和Categories.CategoryId是其表的主键列。因此,将它们用作联接操作的列具有最小的成本。PersonCategories表的两列都是外键(确保有效的数据库状态并提高性能)。最后,Categories.Name列也有一个索引
这种方法可能不好吗?
在