需要在 MySQL 5.7.30 中使用动态生成的 OR 参数值构建查询

Need to Build a Query with Dynamically genarated OR argument values in MySQL 5.7.30

我正在使用 MySQL 版本 5.7.30。 我想创建一个过程,它将动态地生成对 MySQL 数据库 SELECT * FROM stories WHERE stories.user_id = 67 OR stories.user_id = 68 OR stories.user_id = 71 OR stories.user_id = 55 OR stories.user_id = 56 的查询。

在下面的程序中,某类变量“following”的输入值是字符串形式的67,68,71,55,56。变量“count_csv”的值为 5.

从以下的逗号分隔值我想动态生成这个查询SELECT * FROM stories WHERE stories.user_id = 67 OR stories.user_id = 68 OR stories.user_id = 71 OR stories.user_id = 55 OR stories.user_id = 56

请帮助我。我是MySql.

的新手
DELIMITER $$
     CREATE PROCEDURE auto_newsfeed(
IN

userid BIGINT)

BEGIN
    DECLARE following VARCHAR(100);
    DECLARE count_csv INT;
    DECLARE x INT;
    SET  x = 0;



   SELECT GROUP_CONCAT(user_id) INTO following
   FROM followers WHERE follower_id = userid;

  


  SELECT LENGTH(following) - LENGTH(REPLACE(following, ',', '')) + 1 INTO count_csv;

    SELECT * FROM stories WHERE user_id = (or_adder : LOOP
        IF X >= count_csv
        THEN
        LEAVE or_adder;
        END IF;

        SET x = x +1;

        
END LOOP;

END $$
DELIMITER ;

看来您要做的只是:

select stories.*
from followers
join stories on stories.user_id=followers.user_id
where followers.follower_id=?

我认为这里不需要存储过程或动态生成的 sql。