Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL क्वेरी तालिका के सभी स्तंभों में एक स्ट्रिंग खोजती है

यहां बताया गया है कि आप डायनामिक 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;

परीक्षण भी किया गया (;-).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं MySQL तालिकाओं में पढ़ने/लिखने को कैसे लॉक कर सकता हूं ताकि मैं डेटाबेस में पढ़ने/लिखने वाले अन्य प्रोग्रामों के बिना चयन कर सकूं और फिर सम्मिलित कर सकूं?

  2. MySQL जहां JSON में खाली सरणी है

  3. उच्चतम अंकों वाले पहले तीन समूहों में विशिष्ट अंक 5,3, 1 . होने चाहिए

  4. SQL क्वेरी में कोई डुप्लीकेट नहीं

  5. टेक्स्टबॉक्स में कॉमा सेपरेटेड टेक्स्ट से MYSQL में नई पंक्ति जोड़ें