我在mysql中有一个表:(_table
),有几列,其中一列包含一个文本块。我想使用文本块(text
)搜索列,以查看它是否包含特定文本[JOB]
。如果是,我想在另一列(Y
)中插入data
。或者,如果它包含[JOB-M]
我希望它在前面提到的列(M
)中插入data
,如果它不包含[JOB-M]
或[JOB]
,然后它应该插入N
。每次更新或插入字段(text
)时,我都希望它遵循此过程。
我收集我需要创建一个存储过程和一个触发器,但是我遇到了很多麻烦...任何提示?
-nat
P.S。我知道如何在excel中执行此操作,但将其转移到mysql一直很麻烦。这是我的excel公式:
=IF(ISNUMBER(SEARCH("[JOB]",X6)),"Y",IF(ISNUMBER(SEARCH("[JOB-M]",X6)),"M", "N"))
答案 0 :(得分: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;