MST
星途 面试题库

面试题:MySQL文本处理函数与存储过程结合优化查询

创建一个存储过程,输入一个关键词`keyword`,在`articles`表的`article_content`列(长文本类型)中查找包含该关键词的文章。要求在存储过程中使用文本处理函数对`article_content`进行预处理(例如去除特殊字符等操作),以提高查询效率,最后返回匹配文章的相关信息(如`article_id`、`article_title`等)。请写出完整的存储过程代码。
20.9万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

以下假设数据库为MySQL,代码如下:

DELIMITER //

CREATE PROCEDURE SearchArticles(IN keyword VARCHAR(255))
BEGIN
    -- 去除article_content中的特殊字符,这里简单以去除非字母和数字字符为例
    SET @cleaned_keyword = REGEXP_REPLACE(keyword, '[^a-zA-Z0-9]', '');
    
    -- 进行查询
    SELECT article_id, article_title
    FROM articles
    WHERE REGEXP_REPLACE(article_content, '[^a-zA-Z0-9]', '') LIKE CONCAT('%', @cleaned_keyword, '%');
END //

DELIMITER ;