জুলাই 2012 এ ফিরে আমি এই পোস্টটি লিখেছিলাম
একটি mysql db এর সমস্ত সারণী এবং ক্ষেত্রগুলিতে পাঠ্য সন্ধান এবং প্রতিস্থাপনের জন্য প্রশ্ন
এটা টেবিলের ব্যবহার information_schema.columns যে গৃহস্থালি, VARCHAR এবং পাঠ্য ক্ষেত্র কুড়ান এবং পাঠগত সম্পাদন করতে REPLACE ।
দয়া করে আমার পুরানো লিঙ্কটি দেখুন এবং অনুসন্ধানের জন্য এর দৃষ্টান্তটি ব্যবহার করুন।
উদাহরণস্বরূপ, এটি প্রতিটি টেবিলের প্রতিটি পাঠ্য কলামের জন্য আলাদা আলাদা নির্বাচন করবে
SELECT
CONCAT('SELECT ',QUOTE(db),',',QUOTE(tb),',',QUOTE(col),',COUNT(1) FieldHasIt
FROM ',db,'.',tb,' WHERE \`',col,'\`=''',SearchString,''';') SearchSQL
FROM
(
SELECT table_schema db,table_name tb,column_name col FROM information_schema.columns
WHERE table_schema = 'mydb' AND
(column_type LIKE 'char(%' OR column_type LIKE 'varchar(%' OR column_type LIKE '%text')
) A,(SELECT 'Hello' SearchString) B;
এটি দিয়ে একটি বিশাল এসকিউএল পাঠ্য ফাইল তৈরি করুন। তারপরে, সেই বিশাল এসকিউএল স্ক্রিপ্টটি কার্যকর করুন:
SQL="SELECT CONCAT('SELECT ',QUOTE(db),',',QUOTE(tb),',',"
SQL="${SQL} QUOTE(col),',COUNT(1) FieldHasIt FROM ',db,'.',tb,'"
SQL="${SQL} WHERE \`',col,'\`=''',SearchString,''';') SearchSQL FROM"
SQL="${SQL} (SELECT table_schema db,table_name tb,column_name col FROM"
SQL="${SQL} information_schema.columns WHERE table_schema='store_qa'"
SQL="${SQL} AND (column_type LIKE 'char(%' OR column_type LIKE 'varchar(%'"
SQL="${SQL} OR column_type LIKE '%text')) A,(SELECT 'Hello' SearchString) B;"
mysql -uroot -p... -ANe"${SQL}" > MegaSearch.sql
mysql -uroot -p... -AN < MegaSearch.sql > MegaSearchResults.txt
RESULTS_FOUND=`grep -c "1$" < MegaSearchResults.txt`
echo ${RESULTS_FOUND}
if [ ${RESULTS_FOUND} -gt 0 ] ; then grep "1$" < MegaSearchResults.txt ; fi
আউটপুট আপনাকে ডেটাবেস, টেবিল এবং কলামকে ডেটা উপস্থিত দেখায়।
একবার চেষ্টা করে দেখো !!!.
সম্পাদনা করুন:
CONCAT('SELECT ',QUOTE(db),',',QUOTE(tb),',',QUOTE(col),',COUNT(1) FieldHasIt
FROM ',db,'.',tb,' WHERE \`',col,'\`=''',SearchString,''';')
শিখতে হবে: নামের মধ্যে স্থান রয়েছে এমন টেবিলগুলির জন্য নীচে প্রদর্শিত দুটি পিছনের টিকগুলি যুক্ত করুন।
db,'.`',tb,'`',' WHERE