나는 테이블 전체에서 true라는 단어의 모든 인스턴스를 찾고 '1'로 변경하려고합니다. 앞으로 시간을 절약하기 위해 한 번에 모든 열을 변경하고 하나의 쿼리 만 실행할 수 있기를 바랍니다. 내가 일을 찾고 있어요 무엇을 좀입니다한 번에 여러 필드 업데이트
update myTable set field1, field2, field3=1 where field1, field2, field3='true'
.
나는 테이블 전체에서 true라는 단어의 모든 인스턴스를 찾고 '1'로 변경하려고합니다. 앞으로 시간을 절약하기 위해 한 번에 모든 열을 변경하고 하나의 쿼리 만 실행할 수 있기를 바랍니다. 내가 일을 찾고 있어요 무엇을 좀입니다한 번에 여러 필드 업데이트
update myTable set field1, field2, field3=1 where field1, field2, field3='true'
.
update mytable
set
field1 = case when field1='true' then 1 else field1 end,
field2 = case when field2='true' then 1 else field2 end,
field3 = case when field3='true' then 1 else field3 end
where
field1 ='true' or field2='true' or field3='true'
현재 구문이 닫힙니다. 각 필드의 값을 지정해야합니다.
UPDATE MyTable
SET
Field1 = CASE WHEN Field1 = 'True' THEN 1 ELSE Field1 END,
Field2 = CASE WHEN Field2 = 'True' THEN 1 ELSE Field2 END,
Field3 = CASE WHEN Field3 = 'True' THEN 1 ELSE Field3 END
이렇게하면 모든 행을 검사하고 필요에 따라 해당 필드를 업데이트합니다.
아니요, 작성한대로 쉽게 할 수 없습니다.
select name from sys.columns
where object_id=(
select object_id from sys.objects where name like 'myTable '
)
하나 하나를 확인 : 당신이 무엇을 할 수
동적으로 사용하여 컬럼을 통해 루프입니다.
코딩이 필요하고 실행 시간이 가장 좋지는 않지만 많은 코드 작성을 피할 수 있으며 주된 이점은 이름을 변경하여 테이블을 변경할 수 있다는 것입니다.
RDBMS를 사용하고 있습니까 (예 : mySql/Oracle/etc)? – Gerrat
sql server 2008 – wootscootinboogie