我正在嘗試創建一個觸發器,如果??屬性包含“ newsCOVID -19”或“coronavirus”(然后類別 ID 應該是名稱為“COVID-19 ") 或者如果屬性包含“烏克蘭”或“俄羅斯”(那么類別 ID 應該是名稱為“戰爭”的類別 ID)。categorynewstitletitle
這些表具有以下結構:
news (id, title, text, date, user(FK))
category (id, name, description)
new_cat(news(FK), category(FK))
我嘗試實作以下觸發器但沒有成功:
CREATE TRIGGER news_categorizer AFTER INSERT ON news
FOR EACH ROW
BEGIN
INSERT INTO new_cat (news, category) VALUES (NEW.id,
(SELECT id from category WHERE name = "COVID-19" AND (NEW.title = "%COVID-19%" or NEW.title = "%coronavirus%")));
END;
我怎樣才能正確開發這個子查詢,或者我可以根據條件做不同的插入?
uj5u.com熱心網友回復:
LIKE在運算式中正確使用運算子CASE:
CREATE TRIGGER news_categorizer AFTER INSERT ON news
FOR EACH ROW
BEGIN
INSERT INTO new_cat (news, category)
SELECT NEW.id,
id
FROM category
WHERE name = CASE
WHEN (NEW.title LIKE '%COVID-19%') OR (NEW.title LIKE '%coronavirus%') THEN 'COVID-19'
WHEN (NEW.title LIKE '%Ukraine%') OR (NEW.title LIKE '%Rusia%') THEN 'War'
END;
END;
查看簡化的演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463248.html
上一篇:創建觸發器時的SQLite條件
下一篇:js數量限制
