2010-06-11 8 views
109

어떻게 mysql 테이블의 한 셀에서만 데이터를 변경할 수 있습니까? 열의 모든 매개 변수가 변경되기 때문에 UPDATE에 문제가 있지만 하나만 변경하면됩니다. 방법?mysql에서 하나의 셀 데이터 변경

답변

25

UPDATE은 특별히 나열한 열만 변경합니다.

UPDATE some_table 
SET field1='Value 1' 
WHERE primary_key = 7; 

절은 업데이트되는 행을 제한합니다. 일반적으로 테이블의 기본 키 (또는 ID) 값을 식별하기 위해이를 사용하여 한 행만 업데이트합니다.

SET 절은 업데이트 할 열을 MySQL에 알려줍니다. 원하는만큼 열을 나열 할 수 있습니다. 이 목록에없는 항목은으로 업데이트되지 않습니다.

143
당신은 아마 업데이트 할 행을 지정해야

...

UPDATE mytable 
    SET column1 = value1, 
     column2 = value2 
    WHERE key_value = some_value; 
+0

내가 변경 SET 선택된 행을 생각하고,이 대답에 의해 혼동되었다 그들을 변경 . – Keith

+0

where 조건은 column1 = old_value 일 수 있습니까? – weefwefwqg3

+0

@ weefwefwqg3 예, 가능하지만 아무런 의미가 없습니다. 값을 변경하지 않으려면 SET 부분에서 그대로 두십시오. –

5

업데이트는 당신이

UPDATE table SET cell='new_value' WHERE whatever='somevalue' 
92

내 대답은 다른 사람이 전에 말한 것을 반복되는 지정하는 값을 변경하지만, 나는 예를 들어, MySQL을 사용하여 추가 할 것이라고 생각했다. 왜냐하면 이전의 대답은 나에게 약간의 비밀이 있었기 때문이었다.

단일 행의 열을 업데이트하는 데 사용하는 데 필요한 명령의 일반적인 형태 : 여기

UPDATE my_table SET my_column='new value' WHERE something='some value'; 

그리고는 예입니다.

mysql> select aet,port from ae; 
+------------+-------+ 
| aet  | port | 
+------------+-------+ 
| DCM4CHEE01 | 11112 | 
| CDRECORD | 10104 | 
+------------+-------+ 
2 rows in set (0.00 sec) 

는 CHANGE에게 전에

mysql> update ae set port='10105' where aet='CDRECORD'; 
Query OK, 1 row affected (0.00 sec) 
Rows matched: 1 Changed: 1 Warnings: 0 

mysql> select aet,port from ae; 
+------------+-------+ 
| aet  | port | 
+------------+-------+ 
| DCM4CHEE01 | 11112 | 
| CDRECORD | 10105 | 
+------------+-------+ 
2 rows in set (0.00 sec) 
+0

이 데모에 감사드립니다. 위 쿼리는 열의 CDRECORD 인스턴스를 모두 업데이트합니다. 그러나 특정 열의 특정 셀을 업데이트하는 경우 열 ID (예 : ID = xx – Mohammed

0

열 중 일부의 AFTER MySQL의는 "업데이트에 대한"절을 참조하십시오

mysql> SHOW COLUMNS FROM your_table_name; 

나는이를 업데이트 할 수 있지만 알아낼 때 편집을 게시하는 방법을 모르겠어요.

+0

)를 기반으로 업데이트하는 것이 좋습니다. "업데이트 중"이면 "추가"열에 표시됩니다 위의 명령을 실행할 때 얻을 수있는 테이블의 –

1

시도해보십시오.

UPDATE `database_name`.`table_name` SET `column_name`='value' WHERE `id`='1'; 
+0

스택 오버플로에 오신 것을 환영합니다! 이 코드 스 니펫은 환영 받고 도움을 줄 수도 있지만, 질문을 다루는 방법에 대해서는 설명이 포함되어 있으면 크게 향상 될 것입니다 (// meta.stackexchange.com/q/114762). 그것이 없으면 당신의 대답은 교육 가치가 훨씬 낮아집니다 - 당신이 지금 묻는 사람이 아니라 미래의 독자들에게 질문에 답하고 있다는 것을 기억하십시오! 설명을 추가하려면 답을 편집하고 어떤 제한 및 가정이 적용되는지 표시하십시오. –

1

UPDATE 표<tablename>SET<CONDITION>

<COLUMN=VALUE>:

UPDATE TABLE teacher SET teacher_name='NSP' WHERE teacher_id='1'