私は次のようなクエリを書きました:
select * from c_course where c_course.cdesc LIKE CONCAT('%',"science",'%')
OR c_course.cname LIKE CONCAT('%',"science",'%');
cid cname cdesc sdate edate
'301', 'physics', 'science', '2013-01-03', '2013-01-06'
'303', 'chemistry', 'science', '2013-01-09', '2013-01-09'
'501', 'science', 'natural science', '2013-01-31', '2013-01-09'
その正常に動作します。私はこのようなストアドプロシージャを使用して書いたのと同じです:
use lportal;
delimiter //
create procedure pro_search143(IN sname varchar(20))
begin
SET @c = CONCAT('"',sname,'"');
select * from c_course where
c_course.cdesc LIKE CONCAT('%',c,'%')
OR
c_course.cname LIKE CONCAT('%',c,'%');
end
//
実行中ですが、プロシージャの呼び出し中に次のようなエラーが表示されます。
CALL pro_search143("科学"); c where 句の列が不明です。
誰でも私のコードを変更して解決策を提供できますか?