මට විවිධ තීරු නම් 2-3 ක් ඇති අතර එය සමස්ත ඩීබී තුළම බැලීමට අවශ්ය වන අතර එම තීරු ඇති සියලුම වගු ලැයිස්තුගත කරන්න. පහසු පිටපතක් තිබේද?
Answers:
තීරු සහිත 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;
. මෙය එසේ වීමට හේතුව කිසිවෙකුට පැහැදිලි කළ හැකිද?
SQL හි එක් පේළියක වඩාත් සරලව සිදු කරයි:
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');
අපි ඉනෝ ඩීබී හි විශේෂ ai_col
තීරුව සෙමින් ක්රියාත්මක කිරීමට පටන් ගත් විට මෙය සැබවින්ම ප්රයෝජනවත් විය .
ඔබට " සියලු වගු ලබා ගැනීමට පමණක් " අවශ්ය නම්, මෙම විමසුම භාවිතා කරන්න:
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'
Information_schema හි ඇති ගැටළුව නම් එය ඉතා මන්දගාමී විය හැකි වීමයි. SHOW විධාන භාවිතා කිරීම වේගවත් වේ.
ඔබ දත්ත සමුදාය තේරීමෙන් පසු පළමුව SHOW TABLES විමසුම යවන්න. ඉන්පසු ඔබ එක් එක් වගුව සඳහා COLUMNS පෙන්වන්න.
PHP හි එය සමාන ය
$ res = mysqli_query ("SHOW TABLES"); අතර ($ row = mysqli_fetch_array ($ res)) {s rs2 = mysqli_query ("තීරු පෙන්වන්න". $ පේළිය [0]); අතර ($ rw2 = mysqli_fetch_array ($ rs2)) {if ($ 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';
);
එමඟින් the පිළිගත් පිළිතුර මෙන් ColumnA හෝ ColumnB වෙනුවට ColumnA සහ ColumnB සමඟ වගු ලැබෙනු ඇත