【问题标题】:Stored Procedure Dynamic WHERE Condition SQL存储过程动态 WHERE 条件 SQL
【发布时间】:2015-07-21 13:41:47
【问题描述】:

我不是存储过程方面的专家,但我想知道是否可以向游标添加动态 where 条件。在询问之前我已经环顾四周,但似乎没有什么适合我的需求,或者我可以得到它。 我有两个存储过程,一个调用另一个。第一个存储过程调用第二个存储过程并传递一个名为 dynamic_sql_condition 的内置动态 SQL 字符串(“And firstname NOT LIKE blah bla...”)。

这是第二个存储过程的一部分:

declare resources cursor for select name from people where firstname = firstname {dynamic_sql_condition goes here} group by lastname;

【问题讨论】:

    标签: php mysql cursor procedure


    【解决方案1】:

    您可以尝试使用准备好的语句,如下所示:

    PREPARE stmt1 FROM 'select name from people where firstname = firstname {dynamic_sql_condition goes here} group by lastname';
    EXECUTE stmt1;
    

    您可以调整它以与您的光标一起使用。更多信息:https://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

    【讨论】:

    • 那么,这是如何工作的呢?从'blah'准备stmt1;然后为stmt1声明资源游标???
    • 由于您的 SQL 是动态的,您可以简单地将其放入字符串中,如上例所示。然后在你的存储过程中使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多