2013-12-19 74 views
0

我有表M1,它有两个字段M_ID和指标。为了检索每个单独的M_ID的数据,我必须编写一个SQL查询,并在成功处理后使用update语句。SQL查询检索唯一标识符

实施例:M_ID将具有值等1,2,3,4

表结构:

  • M1M_ID, F1, F2, F3, UpdateIndicator

F *是列。

在每次执行查询期间,我需要检索个人M_ID的详细信息。我无法在查询中硬编码M_ID值。

我没有太多的关于SQL的知识,并且作为集成DATA BASE系统的一部分,我只是在我的系统中使用查询来检索数据。

我试着使用GROUPBY用最少的知识,我在SQL

select * from M1 

但在数据库恢复所有M_ID的。

输出应该如下:

如果M_ID有一个像1,2,3,4值,我的SQL查询应该

  • 1实例作为row<1,F1,F2,F3,UpdateIndicator>
  • 第二个实例返回为row<2,F4,F5,F6,UpdateIndicator>

等。

通过M_ID 10个
+0

在数据库中的问题,有必要告诉您正在使用哪种数据库引擎 - Oracle,MS SQL Server,MySQL,Postgres等 - 并指定它的版本。也可以尝试从更高的角度来描述你的任务 - 可能有人会提出更好的解决方案。 – oxfn

+0

还显示一些代码,用于操纵数据库。如果您使用C#和本机SqlClient,我建议使用SqlCommand参数为您的动态ID的 – oxfn

回答

0

获取数据:

SELECT * FROM M1 WHERE M_ID=1 

获取所有M_ID的:

SELECT M_ID FROM M1 

也许,你可以优化你的程序是这样的:

/* This will apply updates to all fields that have Indicator field set */ 
UPDATE M1 SET /* any fields updates */ WHERE UpdateIndicator=1 

/** 
* EXAMPLE: 
* Inrement F1 and decrement F2 on each record that requires update 
*/ 
UPDATE M1 SET F1=F1+1, F2=F2-1 WHERE UpdateIndicator=1 
+0

嗨,正如我所说我不能传递M_ID的值。它应该是动态的。 – user3115214

+1

那么,它来自哪里? – oxfn