2009-11-24 2 views
1

내 데이터는 약간의 공백이 포함 된, 그래서 내가 모든 필드에 대해 수동으로이 일을하고 그것을으로 반복 mysql을 fileds 및 업데이트 필드 테이블

update results set Field1 = trim(Field1); 

트림이 명령을 사용하고 있습니다.

누구나 공통 SQL을 제공하여 테이블의 총 fileds 수를 자동으로 줄일 수 있습니까?

감사합니다.

답변

1

감사합니다. 각 열을 업데이트해야합니다. 하지만 당신은 이런 식으로 시간을 절약 할 수 있습니다

update results 
    set field1 = trim(field1) 
    , field2 = trim(field2) 

양자 택일로, 당신은 VARCHAR 컬럼을 모두 찾아 PHP 또는 Perl과 같은 다른 언어로 쿼리를 작성하는 것을 사용하는 INFORMATION_SCHEMA.COLUMNS 테이블을 조회 할 수 있습니다.

1

당신은 하나 개의 문장에서 자동으로 수행하지만 당신이 할 수있는 것은 이것이다 할 수 없습니다

SHOW COLUMNS FROM myTable WHERE `Type` LIKE '%char%'; 

이 당신에게 모든 CHAR 및 VARCHAR 필드의 목록을 제공합니다. SQL 문을 작성하여 이러한 결과를 반복하십시오.

$temp = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $temp[] = sprintf('`%1$s` = TRIM(`%1$s`)', $row['Field']); 
} 
$sql = "UPDATE myTable SET " . implode(", ", $temp); 
mysql_query($sql); 
+0

감사합니다. 나는 그것을 시도해보고 알려줍니다. – JPro