mysql做的常规错误

时间:2014-09-03 16:06:47

标签: mysql while-loop

MySQL v5.6.17。我在步骤时遇到错误的语法错误(通用错误1064 - '脚本行:33您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册语法在第1行附近使用声明x int' &#34)。我已经看过其他做法的例子,但是逐步执行这些代码甚至没有做到这一点。很疑惑。我也很感激有关这种方法是否最有效的任何建议。基本上我需要循环遍历split_col_table数千行,查看包含分隔值的DelimitedCol列,并将每个分隔值删除到单独的ROW到报表中,然后我从split_col_table中删除前一个值和分隔符,直到没有分隔符为止。最后,我将进行最后一次传递,以便在split_col_table中从DelimitedCol中获取剩余的值。

与循环相关的代码:

    declare x int;
    set x = select count(*) from split_col_table where DelimitedCol like '%;%';

    while x > 0 DO

      INSERT INTO report (SELECT id, val1,LEFT(DelimitedCol,LOCATE(';',DelimitedCol)-1)         FROM split_col_table where DelimitedCol like '%;%');

      UPDATE split_col_table SET DelimitedCol = RIGHT(DelimitedCol, LENGTH(DelimitedCol)- LOCATE(';',DelimitedCol)) where DelimitedCol > '';

      #repeat until no more ';' in split_col_table
      set x = select count(*) from split_col_table where DelimitedCol like '%;%';

    end while; 

0 个答案:

没有答案