2013-06-20 5 views
5

저는 기본적인 SQL 문제로 인해 저를 미치게 만들었습니다. 아래에 예를 들어 mySQL 테이블이있는 경우. 첫 번째 빈 행 (이 예제에서는 행 3)부터 시작하여 두 번째 열에 80+ 값을 추가하는 방법은 무엇입니까?기존의 mySQL 테이블에 데이터 열을 추가하십시오.

INSERT 또는 UPDATE를 사용하여 여러 가지 쿼리를 시도했지만 가장 가까운 것은 마지막 정의 된 ID 값 (예 : 행 80ish)부터 2 열의 값을 추가하는 것입니다.

ID | Column 2 | 
-------------------------------- 
    1 | value  | 
    2 | value  | 
    3 |    | 
    4 |    | 
    5 |    | 

etc 

실제 테이블의 모든 데이터와 약 10 열을 가지고 있지만 난 그냥

내가 좋겠 (열 중 하나에 CSV 형식으로 80 다른 문자열 목록) 내용을 추가 할 필요가 누군가가 올바른 방향으로 나를 가리킬 수 있다면 그것을 감사하십시오.

답변

3

같은 구조로 별도의 테이블에 데이터를로드 한 다음 조인 또는 하위 쿼리를 사용하여 대상 테이블을 업데이트하여 현재 비어있는 열을 확인할 수 있습니다.

update target_table set column2 = (select column2 from interim_table where ... 
where column2 is null 

(느리지 만 직관적)

update target table, interim_table 
set target table.column2 = interim_table.column2 
where target table... = interim_table... 
and target_table.column2 is null 

왜 당신이 먼저 쿼리를 실행하지 않는

+0

대단히 감사합니다. davek. –

0

(성능 향상)를 알아내는 :

즉, 다음 임시 테이블을로드 최초의 빈 행 ID 번호? 당신은 SELECT COUNT(*) FROM TABLE_NAME을 사용할 수 있습니다.

그런 다음 for 루프를 만들고 이전 쿼리에서 반환 한 값으로 시작하여 INSERT 쿼리를 실행합니다. 단지 스크래치 :

for(var id = last; id < totalOfQueries; id++) 
{ 
    var query = new MysqlCommand("INSERT INTO table VALUES ('" + id + "',....); 
} 
관련 문제