首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在触发器中使用新的in子查询的SQLite

在触发器中使用新的in子查询的SQLite
EN

Stack Overflow用户
提问于 2022-04-21 17:57:48
回答 1查看 48关注 0票数 1

我正在尝试创建一个触发器,如果属性news包含“新冠肺炎”或“冠状病毒”,或者属性title包含“乌克兰”或"Rusia“(如果属性title包含"War"),则在表news上的每次插入之后,title将按news对数据库中的某些news进行分类。

这些表格的结构如下:

代码语言:javascript
复制
news (id, title, text, date, user(FK))
category (id, name, description)
new_cat(news(FK), category(FK))

我尝试实现以下触发器,但没有成功:

代码语言:javascript
复制
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;

如何正确地开发这个子查询,或者根据不同的条件执行不同的插入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-21 18:10:37

正确使用CASE表达式中的运算符CASE

代码语言:javascript
复制
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;

请参阅简化的演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71958909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档