ストアドプロシージャとしては、これはかなり簡単に行うことができますが、そのようにはなりません。 2つの入力:cname(概念名、概念表)およびvname(変数または列名、評価表)。 cname入力はうまく動作しますが、vnameを入力すると戻ってくるのは入力テキストだけです。ストアドプロシージャの列名を呼び出す
私が "enc2.sptest( 'jello'、 'dwb');を呼び出すと、私はそれに単語 'jello'(cname)ですべてを返すだろうが、私は列 'dwb'(vname)の値を取得しません。 MySQLは列名の入力を受け入れることができますか?回避策はありますか?
drop procedure if exists enc2.sptest;
delimiter $$
create procedure enc2.sptest (in cname varchar(1000),in vname text)
begin
select
a.concept_id
,a.concept_name
,b.vname
from enc2.concept a,enc2.ratings b
where a.concept_name like concat('%',cname,'%')
and vname is not null
and a.concept_id=b.concept_id
order by vname asc;
end
に[MySQLのSPROCのテーブル名に変数を使用](http://stackoverflow.com/questions/2754423/use-の可能な複製を使用して処理することができますa-variable-for-mysql-sproc) –
リンクマイケルに感謝します。 – user1185787