2012-03-04 4 views
1

데이터베이스에 큰 변화가 일어나므로 많은 텍스트를 새로운 텍스트로 대체해야하지만 특정 단어가있는 경우에만해야합니다.preg가 일치하는 SQL 테이블의 모든 행을 업데이트 하시겠습니까?

Table 
*-----------------------------------------------* 
| id | name | adress | town | 
*-----------------------------------------------* 

나는 이와 같은 테이블을 가지고 있습니다. 나는 "town = new york"(예를 들어) 인 테이블의 모든 행에서 "adress"와 "town"을 대체하려고합니다.

그래서 "뉴욕"이라는 텍스트가 나타날 때마다 주소와 도시를 모두 다른 것으로 바꿔야합니다. 한 번만 - 스크립트를 실행할 때.

아무도 도와 줄 수 있습니까? 나는 preg match를 사용할 수 있고 어떤 식 으로든 PHP에서 함수를 대체 할 수 있다고 생각 하나, 순전히 SQL 명령으로 수행 할 수 있습니까?

는 대소 문자를 구분하는 너희들

답변

3
UPDATE theTable 
SET name = 'xxx', 
    adress = 'xxx' 
WHERE town LIKE '%new york%' 

또는 WHERE UPPER(town) like UPPER('%new york%') 감사드립니다.

+0

나는 주어질 수있는이 정확한 대답을 생각 더 많은 정보를 제공함으로써 @ 2없이. –

+0

멍청한 질문이지만 LIKE 대/소문자를 구분하지 않는 형식입니까? '뉴욕', '뉴욕', '뉴욕', '뉴욕'? – Smamatti

+0

간단합니다. 고마워요! – 2by

0

MySQL은 정규 표현식을 지원하지 않지만, "%는"문자와 일치하는 자리 "%"와 "_"를 지원하는 같은 연산자 (자세한 내용은 here 참조) (심지어 공을 가지고), "_"은 정확하게 하나의 문자 ("*"및 "?"파일 와일드 카드와 유사)와 일치합니다. 그래서 처음에 "뉴욕"을 포함하는 문자열을 찾을 어디 문자열에 "뉴욕"를 포함하는 문자열을

where town like "New York%" 

를 사용하는

where town like "%New York%" 
+0

예. MySQL docs에서'RLIKE' /'REGEXP'를 찾는다. 하지만 고통이 될 수있는 것은 PCRE가 아닙니다. – Walf

관련 문제