mysql에서 하나의 셀 데이터 변경


156

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


지금까지 뭐 해봤 어? 사용중인 쿼리를 공유 할 수 있습니까? 일반적으로, "열의 모든 매개 변수"
— Nico Haase

답변:


191

업데이트하려는 행을 지정해야 할 수도 있습니다 ...

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

1
SET가 선택한 행을 변경하고 어디에서 변경했는지 생각 하면서이 대답에 혼란 스러웠습니다.
— Keith

WHERE의 조건은 column1 = old_value 일 수 있습니까?
— weefwefwqg3

@ weefwefwqg3, 예, 가능하지만 아무 의미가 없습니다. 값을 변경하지 않으면 SET 부분에서 그대로 두십시오.
— 브라이언 후퍼

1
@Brian Hooper : 값을 변경해야합니다.이 작업을 수행 할 수 있는지 묻습니다 UPDATE mytable SET column1 = new_value WHERE column1 = old_value;.
— weefwefwqg3

2
@ weefwefwqg3, 아, 미안, 근시의 공격을 참조하십시오. 예, 그것은 완벽하게 괜찮을 것입니다.
— Brian Hooper

112

내 대답은 다른 사람들이 이전에 말한 것을 반복하지만 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)

변화를 만들기

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)

이 데모에 감사드립니다. 위의 쿼리는 열 aet에서 CDRECORD의 모든 인스턴스를 업데이트합니다. 그러나 특정 열의 특정 셀을 업데이트 할 때는 열의 ID를 기준으로 업데이트하는 것이 좋습니다. 예 : ID = xx
— Mohammed

일반적으로 행 기본 키인 행 고유 식별자 (종종 ID는 아니지만 항상 그런 것은 아님)를 사용하는 것이 가장 좋습니다. 솔직히 그것은 "최상의"관행을 정의하는 당신이하고 싶은 것에 달려 있습니다
— Garret Gang

30

UPDATE 구체적으로 나열한 열만 변경합니다.

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

이 WHERE절은 업데이트 될 행을 제한합니다. 일반적으로 하나의 행만 업데이트하도록 테이블의 기본 키 (또는 ID) 값을 식별하는 데 사용합니다.

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


11

UPDATE 지정한 값만 변경하십시오.

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

9

다음을 시도하십시오 :

UPDATE TableName SET ValueName=@parameterName WHERE
IdName=@ParameterIdName

다른 사람들이 그것을 통해 배울 수 있도록 귀하의 답변에 설명을 추가하십시오-그것이 무엇을 @parameterName 합니까?
— 니코 하세

7

UPDATE TABLE <tablename> SET <COLUMN=VALUE> WHERE <CONDITION>

예:

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

3

이 시도.

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

1
스택 오버플로에 오신 것을 환영합니다! 이 코드 스 니펫은 환영하고 도움이 될 수 있지만 질문을 처리하는 방법에 대한 설명 이 포함되어 있으면 크게 향상 될 것 입니다. 그것 없이는, 당신의 대답은 교육적 가치가 훨씬 낮습니다. 당신은 지금 질문하는 사람 만이 아니라 독자들에게 질문에 대답하고 있다는 것을 기억하십시오! 제발 편집 설명을 추가하고, 제한 및 가정이 적용 무엇의 표시를 제공하는 답변을.
— Toby Speight

0

MySQL의 일부 열에는 "on update"절이 있습니다.

mysql> SHOW COLUMNS FROM your_table_name;

이것을 업데이트하는 방법을 모르겠지만 발견하면 수정 사항을 게시합니다.


"업데이트 중"이 있으면 위 명령을 실행할 때 표시되는 테이블의 "추가"열에 있습니다.
— Jake_Howard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.