2013-12-19 124 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