2011-12-14 5 views
2

나는 하나의 텍스트 블록을 포함하는 몇 개의 열이있는 mysql : (_table) 테이블을 가지고있다. 특정 텍스트 [JOB]이 포함되어 있는지 보려면 텍스트 블록 (text)이있는 열을 검색하고 싶습니다. 그럴 경우 다른 열 (data)에 Y을 삽입하고 싶습니다. 또는 [JOB-M]이 포함되어있는 경우 [JOB-M] 또는 [JOB]이 포함되어 있지 않으면 이전에 언급 된 열 (data)에 M을 삽입하고 싶다면 N을 삽입해야합니다. 필드 (text)가 업데이트되거나 삽입 될 때마다이 프로세스를 따르고 싶습니다. 저장 프로 시저와 트리거를 만들어야하지만 많은 문제가 있습니다. 힌트가 있습니까?
-Natmysql 저장 프로 시저 및 트리거

p.s. Excel에서이 작업을 수행하는 방법을 알고 있지만이 작업을 mysql로 ​​이전하는 것은 번거로운 작업입니다.

=IF(ISNUMBER(SEARCH("[JOB]",X6)),"Y",IF(ISNUMBER(SEARCH("[JOB-M]",X6)),"M", "N")) 

답변

4

INSERT trigger and an UPDATE trigger 트릭 할 것 : 여기 내 엑셀 수식은

mysql> CREATE TRIGGER TRG_BI_JOBYMN BEFORE INSERT ON _table 
    -> FOR EACH ROW 
    -> SET NEW.data = CASE 
    ->     WHEN `text` LIKE '%[JOB]%' THEN 'Y' 
    ->     WHEN `text` LIKE '%[JOB-M]%' THEN 'M' 
    ->     ELSE        'N' 
    ->    END; 

mysql> CREATE TRIGGER TRG_BU_JOBYMN BEFORE UPDATE ON _table 
    -> FOR EACH ROW 
    -> SET NEW.data = CASE 
    ->     WHEN `text` LIKE '%[JOB]%' THEN 'Y' 
    ->     WHEN `text` LIKE '%[JOB-M]%' THEN 'M' 
    ->     ELSE        'N' 
    ->    END; 
+0

감사합니다! 쿼리가 제대로 실행되지만 mysql 5.1로 업데이트되지 않았기 때문에 godaddy 공유 호스팅 리눅스 계정에서 트리거가 작동하지 않습니다! 호스트를 전환하거나 전용 서버로 업그레이드해야하는 것처럼 보입니다. 나는이 모든 정보를 정리할 때이 정보를 사용할 것입니다! 대단히 감사합니다! – nat

+0

당신을 진심으로 환영합니다. 가능한 경우 답변을 수락하십시오. :) – pilcrow