Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Grupuj wyjście POKAŻ KOLUMNY w listę rozdzielaną przecinkami

Spójrz na tabelę 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'

edytować. Schemat informacji umożliwia tworzenie zapytań dotyczących metadanych. Możesz więc nawet porównywać pola między tabelami na przykład z lewym złączeniem.

edytować. Cześć Chris. Cieszę się, że rozwiązałeś problem. Jak powiedziałeś, twój problem był zupełnie inny, ponieważ dotyczył różnych serwerów. Dodaję przykład dwóch różnych baz danych na tym samym serwerze.

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 oczywistym wynikiem jest dob, który jest obecny w tabeli 1, a nie w tabeli 2.

Mam nadzieję, że pomoże to komuś innemu. Pozdrawiam chłopaków. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Upsert i auto-inkrementacja MySql powodują luki

  2. Jak tworzyć dynamiczne tabele przestawne w MySQL

  3. Minimalizowanie zapytań SQL przy użyciu sprzężenia z relacją jeden-do-wielu

  4. Ranking wspólnych pozycji w MySQL

  5. Jak usunąć niechciane znaki wiodące z ciągu w MySQL?