2011-03-09 7 views
2

html 특정 레코드에 대한 mysql 테이블의 모든 열을 특정 값으로 업데이트하는 방법은 없습니다.mysql 테이블의 모든 열을 특정 값으로 설정하십시오.

예 : 나는 약 70 열을 가지고 테이블을 가지고 있으며, 그들은 기본적으로 하나 또는 두 개의 값을 작성하여 모든 다른 필드를 제출하여 PHPmyadmin을 통해 새 레코드를 추가 할 때, 테이블을 만들 때 기본적으로 0으로 설정됩니다 0으로 설정,하지만 난 1 여러 번에 모든 필드를 설정하려면, 그래서 나는까지 과정 엔을 단축하기 위해 phpMyAdmin을

를 통해 개별적으로 1

을 모든 열을 설정해야하고 나는

시도 UPDATE tablename SET * = '1' WHERE id = '2',하지만 작동하지 않습니다.

누구나 유사한 행에 해결책을 제공 할 수 있다면 좋을 것입니다.

편집 :


는 SQL 문에있는 모든 70 열을 지정하지 않고 방법이 있나요? 그게 내가 찾고있는 것. SQL 문에서 일반적으로 열을 지정하는 방법을 업데이트하는 방법을 알고 있습니다. 고맙습니다.

+0

, 당신은뿐만 아니라 1로 id 컬럼을 업데이트 끝날 것입니다! 열의 기본값을 1로 변경하는 것이 더 좋지 않습니까? – JohnC

+0

70 개의 열이 모두 동일한 데이터 유형을 의미합니까? 오히려 전형이 아닌 것처럼 들립니다. –

+0

편의상 id 열을 71 번째 열로 간주 할 수 있습니다. 예 모든 열은 id 열을 제외하고 동일한 데이터 유형을가집니다. 모든 열은 SMALLINT 데이터 유형을 가지며 id 열 이외의 모든 열은 값 1 또는 0 만가집니다. 권한, ACL 테이블. – Amitabh

답변

2

업데이트 문에서 각 열의 이름을 지정해야합니다.

+0

안녕하세요, 고마워요, 내가 원하는 열을 지정하여 테이블을 업데이 트할 수 있습니다 알아요 – Amitabh

+0

당신이 원하는 열을 지정해야합니다, 거기에 같은 일이 없다는 mytable 설정 기본값 설정 ID = 12 – fredt

3

전체 70 개의 열을 짧은 값으로 단일 값으로 업데이트하는 방법을 찾으려면 업데이트를 수행하기 위해 저장 프로 시저를 작성하는 것이 좋습니다. 그렇게하면 전체 업데이트 구문을 한 번만 작성하면되고 저장 프로 시저를 호출하여 반복적으로 다시 사용할 수 있습니다.

CREATE PROCEDURE update_all_columns (p_new_value SMALLINT, p_id INT) ... 

CALL update_all_columns(1,2); 

또 다른 트릭은 덜 지루한 저장 프로 시저를 코딩하고, 업데이트 문을 생성하기 위해 INFORMATION_SCHEMA.COLUMNS 테이블을 사용하는 것입니다. 이 같은

뭔가 : 당신이 모든 열을 지정할 수있는 경우

SELECT concat('UPDATE ', 
table_name, 
' SET ', 
group_concat(column_name separator ' = p_new_value, '), 
' = p_new_value', 
' WHERE id = p_id;') as sql_stmt 
FROM information_schema.columns 
WHERE table_schema = 'your_schema' 
AND table_name = 'tablename' 
AND column_name != 'id' 
관련 문제