sql >> Databáze >  >> RDS >> Mysql

Seskupte výstup ZOBRAZIT SLOUPCE do seznamu odděleného čárkami

Podívejte se na tabulku information_schema.columns

select group_concat(column_name order by ordinal_position)
from information_schema.columns
where table_schema = 'database_name' and table_name = 'table_name'

Upravit. Informační schéma vám umožňuje provádět dotazy na metadata. Můžete tedy dokonce porovnávat pole mezi tabulkami například pomocí levého spojení.

Upravit. Ahoj Chrisi. Jsem rád, že jsi to vyřešil. Jak jste řekl, váš problém byl zcela odlišný, protože se týkal různých serverů. Přidávám příklad dvou různých databází na stejném serveru.

create database db1;
use db1;
create table table1(
id int not null auto_increment primary key,
name varchar(50),
surname varchar(50),
dob date)
engine = myisam;

create database db2;
create table db2.table2 like db1.table1;
alter table db2.table2 drop column dob;

select i1.column_name from (
select column_name
from information_schema.columns 
where table_schema = 'db1' and table_name = 'table1' ) as i1
left join (
select column_name
from information_schema.columns 
where table_schema = 'db2' and table_name = 'table2' ) as i2
on i1.column_name = i2.column_name
where i2.column_name is null

a zřejmým výsledkem je dob, které je přítomno v tabulce1 a nikoli v tabulce2.

Doufám, že to pomůže někomu dalšímu. S pozdravem kluci. :)



  1. Povolit protokolování pomalých dotazů (Slow Query Log) v databázi MySQL

  2. Importujte soubor CSV přímo do MySQL

  3. Jak získat všechny možné kombinace řádků ze dvou tabulek v SQL

  4. Příklady GETUTCDATE() v SQL Server (T-SQL)