Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何使用未知值的IN条件进行选择查询

如何使用未知值的IN条件进行选择查询
EN

Stack Overflow用户
提问于 2013-01-16 03:14:47
回答 3查看 617关注 0票数 4

我有两个下拉列表,一个项目和第二个类别。

我有一个要选择我得到id的ddproject,基于这个id我必须填充select。

表格结构SQL小提琴

如果我从下拉列表中选择ProjectOne,在这里进行简单的查询

代码语言:javascript
代码运行次数:0
复制
select  id,name from tbcategory where id in(1,2)  

但我的问题是,我不知道在in条件下会有多少值。

C#:第一,我拆分了列名categoryid,然后得到了值,然后怎么办?

另外,让我知道我是以正确的方式做的,还是以任何其他固有的方式来实现这一目标?

编辑:或者我应该更改我的表结构,如果是,那么应该是什么模式?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-16 03:20:38

根据您的数据,有许多:类别和项目之间的许多关系。因此,您需要对另一个多个表进行建模:许多表保存数据,对这种关系进行建模。

SQL Fiddle在这里

首先,创建一个新的表来保存多个表:类别和项目之间的许多关系:

代码语言:javascript
代码运行次数:0
复制
create table tbProjectCategory
(
  tbProjectId INT,
  tbCategoryId INT
);

然后,在tbProject中删除字符串逗号分隔的关系--这是没有用的。相反,将链接插入到许多表中。例如:

代码语言:javascript
代码运行次数:0
复制
insert into tbProjectCategory(tbProjectId, tbCategoryId) values (1, 1), (1, 2);

将项目1与第1和第2类联系起来。

然后,要查找Project 1的所有类别,您需要通过多个链接表进行连接,然后按项目Id进行筛选:

代码语言:javascript
代码运行次数:0
复制
select  cat.id, cat.name 
  from tbcategory cat
  inner join tbProjectCategory prjcat
  on prjcat.tbCategoryId = cat.id
  where prjCat.tbProjectId = 1;

为了简洁起见,我还删除了您的identity列--这样可以更容易地知道哪些数据记录是链接的。

票数 3
EN

Stack Overflow用户

发布于 2013-01-16 03:25:39

我会创建M:N关系表,如:

代码语言:javascript
代码运行次数:0
复制
tbProjects2Categories
    IDCategory int;
    IDProject int;

然后您可以进行查询:

代码语言:javascript
代码运行次数:0
复制
SELECT c.id, c.name FROM tbCategory c JOIN tbProjects2Categories pc 
                ON c.IDCategory = pc.IDCategory 
                WHERE pc.IDProject = @selectedProjectId;

项目和类别之间的关系将如下所示:

IDProject x- IDCategory 1-1

它的意思是在您最初的模式中:

代码语言:javascript
代码运行次数:0
复制
(1,'ProjectOne','Mumbai','1,2,3'); 
(2,'ProjectTwo','USA','1,3');

要完成这个问题的答案:

将实体关系存储在逗号分隔的列表中并不是一个好做法。您甚至很难拆分该列值并使您的查询工作正常。

票数 3
EN

Stack Overflow用户

发布于 2013-01-16 03:27:40

是的,逗号分隔的值不是在数据库中存储关系的好方法。您应该再创建一个表来定义两个原始表之间的关系:

代码语言:javascript
代码运行次数:0
复制
create table tbProjectCategory (id int IDENTITY(1,1),projectId int, categoryId int)

然后,您可以这样基于projectId查询它:

代码语言:javascript
代码运行次数:0
复制
select * from tbcategory c
  inner join tbProjectCategory pc on c.id = pc.categoryId
where projectId = 1;

请试试这个Fiddle:http://sqlfiddle.com/#!3/b11acb/2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14357075

复制
相关文章
SpringBoot中进行elasticSearch查询,使用QueryBuilders构建各类条件查询
BoolQueryBuilder对象使用must方法build,多个and使用多个must
翎野君
2023/07/21
1.7K0
问与答129:如何对#N/A文本值进行条件求和?
它们输出的结果看起来相似,但实质上是不同的:在A1和A2中是文本类型,而A3和A4中是错误类型。从数据的对齐方式上也可以反映出来。
fanjy
2021/07/12
2.4K0
问与答129:如何对#N/A文本值进行条件求和?
Python 使用正则表达式进行MongoDB条件查询
db.VideoProfile.find( {_id: { $regex: /^1_[0-9]{5,}$/} } ).count()
week
2018/08/24
1.6K0
Python 使用正则表达式进行MongoDB条件查询
ThinkPHP使用数组条件进行查询之同一字段多个条件
对同一表中多个字段的查询,在thinkPHP中使用数组条件进行查询,有三个好处,第一可以批量设置多个查询字段,第二可以设置多个查询条件,第三结构化你的代码,让代码更具可读性。数组条件查询有简单数组查询、数组表达式查询,一般使用$map保存数组条件。
世纪访客
2018/08/02
2.4K0
ThinkPHP使用数组条件进行查询之同一字段多个条件
MySQL如何使用SET设置多值作为查询条件?
一、问题描述 1、如何使用 SET 存储多个变量作为 WHERE 条件进行查询呢? 实现效果: SELECT * FROM t_table WHERE id IN (1,2,3,4,5); 2、MySQL使用 SET 可设置单个变量进行查询 正确语法: SET @id=1; SELECT * FROM t_route_line WHERE id = @id; 3、MySQL如果使用 SET 设置多个变量进行查询? 错误语法: SET @id=(1,2,3,4,5); SELECT * FROM t_rout
静谧星空TEL
2021/04/28
4.5K0
如何使用方差阈值进行特征选择
今天,数据集拥有成百上千个特征是很常见的。从表面上看,这似乎是件好事——每个样本的特征越多,信息就越多。但通常情况下,有些特征并没有提供太多价值,而且引入了不必要的复杂性。
deephub
2021/04/16
2.1K0
使用 querySelector 查询元素时,如何使用正则进行模糊匹配查询?
你好,今天聊一个简单的技术问题,使用 querySelector 方法查询网页上的元素时,如何使用正则进行模糊匹配查询?
LIYI
2023/10/25
1.9K0
使用 querySelector 查询元素时,如何使用正则进行模糊匹配查询?
Solr如何使用游标进行深度分页查询
通常,我们的应用系统,如果要做一次全量数据的读取,大多数时候,采用的方式会是使用分页读取的方式,然而 分页读取的方式,在大数据量的情况下,在solr里面表现并不是特别好,因为它随时可能会发生OOM的异常,在solr里面 通过rows和start参数,非常方便分页读取,但是如果你的start=1000000 rows=10,那么solr里面会将前面100万元数据的索引信息读取在内存里面,这样以来,非常耗内存,所以在solr里面,分页并不适合深度分页。 深度分页在solr里面,更推荐使用游标的方式,游标
小柒2012
2018/04/13
2.6K0
@JsonSerialize 使用:注解方式 实现条件判断属性值、条件修改属性值
预期效果为:当查到属性值为 1 时,就给序列化后的 json 中性别字段赋值为 “男” , 0 则 ”女“ 。
微风-- 轻许--
2022/04/13
3K0
@JsonSerialize 使用:注解方式 实现条件判断属性值、条件修改属性值
Thinkphp 查询条件 and 和 or同时使用即复合查询
  thinkphp 3.2快捷查询OR查询&分割表示AND查询讲解         快捷查询方式是一种多字段查询的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如:         一、不同字段相同的查询条件
全栈程序员站长
2022/07/08
3.1K0
如何进行多条件判断?
”销售订单表”记录了销售情况,每一张数据表示哪位顾客、在哪一天、哪个网点购买了什么产品,购买的数量是多少,以及对应产品的零售价
猴子数据分析
2022/02/09
4330
如何进行多条件判断?
查询字典码,并且以值的形式进行返回
在加入到数据库的时候,对应的字段是代码编号,但是查询的时候,我们要展示,不能只是展示编号,要展示的是编号对应的具体的值,所以,我们需要在xml里面进行套语句。也就是在查询语句里面套
一写代码就开心
2020/11/20
1.5K0
Solr中如何使用游标进行深度分页查询
通常,我们的应用系统,如果要做一次全量数据的读取,大多数时候,采用的方式会是使用分页读取的方式,然而 分页读取的方式,在大数据量的情况下,在solr里面表现并不是特别好,因为它随时可能会发生OOM的异常,在solr里面 通过rows和start参数,非常方便分页读取,但是如果你的start=1000000 rows=10,那么solr里面会将前面100万元数据的索引信息读取在内存里面,这样以来,非常耗内存,所以在solr里面,分页并不适合深度分页。 深度分页在solr里面,更推荐使用游标的方式,游
我是攻城师
2018/05/14
3.3K0
java mongodb 使用MongoCollection,BasicDBObject 条件查询
其中时间时间区间查询 被坑了一把。后来直接改成字符串格式的了(yyyy-MM-dd HH:mm:ss)。
全栈程序员站长
2021/06/10
2.4K0
HQL查询-分页-条件-连接-过滤使用
HQL(Hibernate Query Language)是hibernate自带的查询语言,进行了面向对象的分装,今天就来学习一下,
全栈程序员站长
2022/08/31
2.8K0
HQL查询-分页-条件-连接-过滤使用
mybatis 中 Example 的使用 :条件查询、排序、分页
版权声明:这可是本菇凉辛辛苦苦原创的,转载请一定带上我家地址,不要忘记了哈 . https://blog.csdn.net/u011314442/article/details/90140532
微风-- 轻许--
2019/05/25
29.2K2
使用MIC进行变量选择
如果有很多自变量,我们能在很多自变量中选出几个对因变量影响最大的吗?或许MIC可以解决这个问题哦。 # -*- coding: utf-8 -*- """ Created on Mon Mar 14
钱塘小甲子
2019/01/29
1K0
使用MIC进行变量选择
ElasticsearchTemplate的详细使用,完成多条件查询、匹配度查询等
ElasticsearchTemplate是Spring对ES的java api进行的封装,提供了大量的相关的类来完成各种各样的查询。在日常的使用中,应该说最常用的查询就是queryList方法。
天涯泪小武
2019/01/17
15K0
点击加载更多

相似问题

如何进行条件查询选择

20

使用未知字段进行选择

10

使用多个条件和子查询进行选择

31

查询后如何设置@瞬态字段值?使用Hibernate条件进行查询

10

使用条件传递值的未知索引

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文