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.