यहां बताया गया है कि आप डायनामिक SQL में मानों को कैसे जोड़ेंगे:
set @Pattern = '%augusto%';
select @q := concat('select * from Table1 ',
'where concat(', group_concat(column_name), ', "") like "', @Pattern, '"'
)
from information_schema.columns c
where table_name = 'Table1';
prepare st from @q;
execute st;
deallocate prepare st;
बेशक, गतिशील एसक्यूएल विशेष रूप से पोर्टेबल नहीं है। यह विचार अधिकांश डेटाबेस में काम करेगा। कोड अलग दिखेगा।
परीक्षण किया और काम कर रहा है यहां ।
और अंत में, आप इसे परिवर्तनीय प्रतिस्थापन के साथ कर सकते हैं (जो बेहतर तरीका है):
select @q := concat('select * from Table1 ',
'where concat(', group_concat(column_name), ', "") like ?'
)
from information_schema.columns c
where table_name = 'Table1';
set @p = '%augusto%';
prepare st from @q;
execute st using @p;
deallocate prepare st;
परीक्षण भी किया गया (;-).