写了一个存储过程:
create procedure jt1(title char(10))
begin
set @a=title;
prepare stmt from "select id from pro where ?";
execute stmt using @a;
end
这样调用:call jt1('name="wgh"');
最后输出:Empty set (0.00 sec),并没有得到想要的记录。想到的执行等效这样的语句:select id from pro where name='wgh';
刚学习mysql不知道这样的效果应该怎么实现,哪个大侠帮忙指导一下,谢谢!

解决方案 »

  1.   

    自己网上找了一下解决了:
    create procedure jt2(title varchar(100))
    begin
    declare c varchar(200);
    set c=concat('select id from pro where ',title);
    set @a=c;
    prepare stmt from @a;
    execute stmt;
    end//
    虽然写法跟之前的不一样,但效果实现了,不过不知道为什么上面的不行。还希望有大侠帮忙解释一下。谢谢