2017-08-14 29 views
0

我有一個名爲mytable的表,它有一個名爲a_column的列,目前它的值爲null,它有100行。我只需要知道如何將前50行的值設置爲ABC,將其餘50行設置爲XYZ。我試圖使用下面的查詢,但我沒有成功。請向我建議查詢。mysql-插入多個數據組的單個列

UPDATE mytable 
    SET a_column= 'ABC'; 

INSERT INTO table (mytable) VALUES ("ABC/XYZ") 

chamath

+0

您將需要使用光標寫循環,並在其中計數50次'Abc'和50次'xyz'。或者使用帶AUTO_INCREMENT的臨時表,然後使用匹配的臨時表記錄更新'mytable',其中標識列< or > = 51 –

+0

如果您只有2個組(超過2個且動態是另一回事),並且它們僅被「 /「也許你可以嘗試UPDATE並將更新限制爲50.第一次更新將是ABC,第二次更新將是XYZ,只是總是在where子句中包含null條件,以免覆蓋以前的更新或使用偏移量。或者最後可能是@variable的更新。 – Learning

+0

是否mytable有一些方法知道前50行 - 例如自動增量id列? –

回答

-1

您可以使用下面的查詢來做到這一點。 SET a_column =(CASE WHEN id> 50 THEN'XYZ'ELSE'ABC'END);

+0

這需要一些非常不可能成立的假設。 – Strawberry