【问题标题】:change mysql stored procedure to accept mysql field?更改 mysql 存储过程以接受 mysql 字段?
【发布时间】:2014-09-13 16:37:16
【问题描述】:

我找到了以下过程并对其进行了一些编辑-试图弄清楚如何将变量 str 设置为查询结果“标签”--(从 id > 3 的帖子中选择标签)以便我可以创建临时从它的内容表......我所做的似乎无济于事。

BEGIN

  DECLARE a INT Default 0 ;
  DECLARE str VARCHAR(255);



  simple_loop: LOOP
     SET a=a+1;
     SET str=SPLIT_STR(fullstr,",",a);
     IF str='' THEN
        LEAVE simple_loop;
     END IF;

     insert into Tmp values (str);

   END LOOP simple_loop;
 END

【问题讨论】:

    标签: mysql sql sql-server stored-procedures


    【解决方案1】:

    Select Into 语句会做到这一点。

    BEGIN
    
      DECLARE a INT Default 0 ;
      DECLARE str VARCHAR(255);
    
      simple_loop: LOOP
         SET a=a+1;
         Select tags into str from Post where id > 3;
         SET str=SPLIT_STR(str,",",a);
         IF str='' THEN
           LEAVE simple_loop;
         END IF;
    
         insert into Tmp values (str);
    
      END LOOP simple_loop;
    END
    

    【讨论】:

    • 我试过了,但它给了我返回不止一行的错误?
    • 对此不确定,但也许您需要的只是一个查询,例如:INSERT INTO Tmp SELECT SPLIT_STR(tags, ", ", 1) from Post where id > 3.
    • 是的,它从标签中获取第一个值,但标签的某些行最多有 33 个值,用逗号分隔,因此需要循环。
    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2011-07-14
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多