2012-11-07 7 views
0

문자열을 찾은 후 문자열의 일부를 텍스트 필드에서 제거하려고합니다. 내가 제거하고 싶은 것은 항상 문자열의 끝에있을 것이고 동일하지는 않지만 항상 같은 문자열로 시작합니다. < iframe (<과 i 사이에 공백을 넣지 않습니다. 인쇄하지 않기 때문에 그냥 넣습니다. 내가하지 않으면).모든 행에 대해 한 행에 대해 작업하는 SQL 쿼리 적용

제 동생의 도움으로 지정된 한 행에 대해 실행되도록 코드를 작성하는 방법을 결정할 수있었습니다. 그러나 이제는 모든 행에 대해 실행하는 방법을 알 수 없습니다. 우리가 가진 코드는 지금까지 하나의 행에 대해, 다음과 같습니다 :

update products_description 
set products_description 
     = (select test 
      from 
      ( 
       select substr(PD.products_description,1,instr(PD.products_description, '<iframe') -1) as test 
       from products_description PD 
       where products_id=36 
      ) as x) 
where products_id=36 

이 실제로 내가 해결책을 확인할 수 없습니다 this 스레드에 대한 후속이다.

이 점에 대해 밝히는 사람 덕분입니다.

EDIT : 그냥 테이블과 컬럼은 모두 products_description로 처리됩니다.

+0

좋아, 아주 이상한 쿼리, 정말 검사,하지만 어쩌면 당신이 경우하지 않았다 마지막 부분을 제거합니다 (products_id = 36). 그러면 모든 행에 대해 해당 작업이 수행됩니다. 물론 백업을하십시오. – rednaw

답변

1

는 중첩 된 쿼리하지 않고 그것을 시도 :

UPDATE products_description 
    SET products_description = SUBSTR(products_description,1,INSTR(products_description, '<iframe') -1) 
    WHERE products_id IN (/* list of ids goes here */) 

전체 테이블에 대해 실행하려면 WHERE 절을 둡니다.

+0

고맙습니다. 그것은 우리를 거기에 뒀다! 우리는 원래 갱신 products_description'시도 SET의 products_description = SUBSTR (products_description 1 측량기 (products_description ' user1780464

+0

에서 업데이트 할 대상 테이블'products_description '을 지정할 수 없으므로'UPDATE products_description '으로 변경했습니다. SET products_description = SUBSTR (products_description, 1, INSTR (products_description,'< iframe ') -1) WHERE products_id IN (선택 제품 _id FROM ( ) products_description PD 에서 PD.products_description과 같이'%