sql >> Databasteknik >  >> RDS >> Mysql

MySql välj alla tabeller med flera specifika kolumner

Det här är en snabbare version:

SELECT TABLE_NAME 
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE COLUMN_NAME IN ('columnA','columnB','columnC')
group by TABLE_NAME
having count(distinct COLUMN_NAME) = 3 

I ovanstående fråga har räkning nej. av kolumner som anges i IN fras.

eller försök att följa (men det kommer att skapa katastrof för så många kolumner. Så undvik det)

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME IN 
( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnA' )
and TABLE_NAME in 
( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnB')
and TABLE_NAME in 
( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnC')


  1. jOOQ infoga fråga med returnerande genererade nycklar

  2. sqlplus:fel vid laddning av delade bibliotek:libsqlplus.so:kan inte öppna fil med delat objekt:Ingen sådan fil eller katalog

  3. MySQL jämför now() (endast datum, inte tid) med ett datetime-fält

  4. Räkna förekomsterna över flera kolumner