উত্তর:
কলামগুলি columnA
বা ColumnB
ডাটাবেসে সমস্ত সারণী পেতে YourDatabase
:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('columnA','ColumnB')
AND TABLE_SCHEMA='YourDatabase';
DATABASE()
বর্তমানে নির্বাচিত ডাটাবেসে অনুসন্ধানের জন্য স্ট্রিংয়ের পরিবর্তে ব্যবহার করতে পারেন ।
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%wild%';
TABLE_SCHEMA
সেই কলামের নাম থাকা সমস্ত ডাটাবেস + টেবিল দেখতে রিটার্নের ক্ষেত্রগুলিতে যুক্ত করুন ।
show tables;
। কেউ কেন এটি হতে পারে ব্যাখ্যা করতে পারেন?
আরও সহজভাবে এসকিউএল এর একটি লাইনে সম্পন্ন:
SELECT * FROM information_schema.columns WHERE column_name = 'column_name';
যে সংস্করণটি নেই information_schema
(পুরানো সংস্করণ বা কিছু এনডিবি) আপনি টেবিলের কাঠামোটি ফেলে দিতে পারেন এবং ম্যানুয়ালি কলামটি সন্ধান করতে পারেন।
mysqldump -h$host -u$user -p$pass --compact --no-data --all-databases > some_file.sql
এখন some_file.sql
আপনার পছন্দের পাঠ্য সম্পাদকটি ব্যবহার করে কলামের নামটি অনুসন্ধান করুন বা কিছু নিফটি অ্যাজক স্ক্রিপ্ট ব্যবহার করুন।
এবং কলামটি সন্ধান করার জন্য একটি সরল সেড স্ক্রিপ্ট, কেবল COLUMN_NAME এর সাথে প্রতিস্থাপন করুন :
sed -n '/^USE/{h};/^CREATE/{H;x;s/\nCREATE.*\n/\n/;x};/COLUMN_NAME/{x;p};' <some_file.sql
USE `DATABASE_NAME`;
CREATE TABLE `TABLE_NAME` (
`COLUMN_NAME` varchar(10) NOT NULL,
আপনি সরাসরি সেডে ডাম্পটি পাইপ করতে পারেন তবে এটি তুচ্ছ।
এটির বিপরীতটি অনুসন্ধানকারীদের জন্য, যেমন কোনও নির্দিষ্ট কলামের নাম না থাকা সারণীগুলি সন্ধান করা, এখানে ক্যোয়ারী ...
SELECT DISTINCT TABLE_NAME FROM information_schema.columns WHERE
TABLE_SCHEMA = 'your_db_name' AND TABLE_NAME NOT IN (SELECT DISTINCT
TABLE_NAME FROM information_schema.columns WHERE column_name =
'column_name' AND TABLE_SCHEMA = 'your_db_name');
এটি সত্যিই কার্যকর হয়েছিল যখন আমরা আস্তে আস্তে InnoDB এর বিশেষ ai_col
কলামের ব্যবহার শুরু করতে শুরু করেছিলাম এবং আমাদের 200 টি টেবিলগুলির মধ্যে কোনটি আপগ্রেড করা হয়নি তা বের করার প্রয়োজন হয়েছিল।
আপনি যদি কেবল " সমস্ত টেবিল পেতে " চান তবে এই ক্যোয়ারীটি ব্যবহার করুন:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME like '%'
and TABLE_SCHEMA = 'tresbu_lk'
আপনি যদি " কলামগুলির সাথে সমস্ত সারণী পেতে " চান তবে এই ক্যোয়ারীটি ব্যবহার করুন:
SELECT DISTINCT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name LIKE '%'
AND TABLE_SCHEMA='tresbu_lk'
এই এক লাইন ক্যোয়ারীটি ব্যবহার করুন, আপনার কলামের নাম দিয়ে কাঙ্ক্ষিত_ কলাম_নামটি প্রতিস্থাপন করুন।
SELECT TABLE_NAME FROM information_schema.columns WHERE column_name = 'desired_column_name';
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%city_id%' AND TABLE_SCHEMA='database'
তথ্য_সেমার সমস্যা হ'ল এটি ভীষণ ধীর হতে পারে। শো কমান্ড ব্যবহার করা তত দ্রুত।
আপনি ডাটাবেসটি নির্বাচন করার পরে প্রথমে দেখান টেবিলগুলি কোয়েরিটি প্রেরণ করুন। এবং তারপরে আপনি প্রতিটি টেবিলের জন্য রঙিন শো করুন।
পিএইচপি-তে এমন দেখতে হবে
$ res = mysqli_query ("টেবিলগুলি দেখান"); যখন ($ সারি = mysqli_fetch_array ($ res)) ; $ আরএস 2 = mysqli_query ("কলম্বস থেকে দেখান" $ সারি [0]); যখন ($ rw2 = mysqli_fetch_array ($ rs2)) {যদি ($ rw2 [0] == $ লক্ষ্য) .... } }
select distinct table_name
from information_schema.columns
where column_name in ('ColumnA')
and table_schema='YourDatabase';
and table_name in
(
select distinct table_name
from information_schema.columns
where column_name in ('ColumnB')
and table_schema='YourDatabase';
);
এটিরূপে গৃহীত উত্তরের মতো কলামা বা কলাম स्तরের পরিবর্তে কলামা এবং কলামবিতে টেবিলগুলি পাবেন