如何循环SQL查询并在每次迭代期间更改一个参数

时间:2016-08-12 17:07:00

标签: mysql sql database jupyter

如何在循环中多次运行此SQL查询,在每次迭代期间我将单词'awesome'替换为另一个单词。有没有办法存储一个字符串数组并循环它们?

我试图在我的数据库中找到提及“awesome”这个词的评论,但我也希望在其他几个单词上运行此查询,而不必逐个运行它们并手动替换“awesome”这个词

SELECT * FROM books WHERE review_text LIKE '%awesome%'

2 个答案:

答案 0 :(得分:2)

CREATE TABLE SearchStrings (SearchString VARCHAR(50));

INSERT INTO SearchStrings (SearchString)
VALUES ('string1'),('string2');

SELECT *
FROM
    books b
    INNER JOIN SearchStrings s
    ON b.review_text LIKE CONCAT(CONCAT('%',s.SearchString),'%')
;

答案 1 :(得分:0)

在单个查询中,您可以在WHERE子句中附加要包含在OR列表中的所有不同搜索文本。

SELECT * 
FROM books 
WHERE review_text LIKE '%awesome%'
OR review_text LIKE '%blossum%'
OR review_text LIKE '%possum%'
OR review_text LIKE '%bean-soup%'

您可以根据需要添加尽可能多的内容进行搜索。这还有一个额外的好处,可以节省您到数据库的往返次数,使这个单个查询比几个独立查询快得多。