Instrucțiunea SHOW TABLES cu mai multe valori LIKE (Programare, Mysql, Sql, Mysql Error 1064)

mysql_go a intrebat.
mysql> SHOW TABLES like 'cms';
+-------------------------+
| Tables_in_tianyan (cms) |
+-------------------------+
| cms                     |
+-------------------------+
1 row in set (0.00 sec)

Rezultat

mysql> SHOW TABLES like 'cms' or like 'role';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual...

Cum pot filtra după mai multe condiții ?

user212218

Comentarii

4 răspunsuri
Rich Adams

Trebuie să utilizați WHERE clauză. Așa cum se arată în docs, puteți avea doar un singur model dacă folosiți "SHOW TABLES LIKE ...", dar puteți utiliza o expresie în clauza WHERE dacă utilizați "SHOW TABLES WHERE ...". Întrucât doriți o expresie, trebuie să utilizați expresia WHERE clauză.

SHOW TABLES
FROM `<yourdbname>`
WHERE 
    `Tables_in_<yourdbname>` LIKE '%cms%'
    OR `Tables_in_<yourdbname>` LIKE '%role%';

Comentarii

  • Trebuie să definiți numele bazei de date în clauza FROM această interogare va returna tabele din orice bază de date deservită de instanța MySQL. –  > Por OMG Ponei.
Michael Low

Puteți utiliza un SQL normal WHERE normală pentru a face acest lucru.

SHOW TABLES WHERE Tables_in_tianyan LIKE '%cms%'

Comentarii

  • Vreau să filtrez după like 'cms' or like 'role', și se pare că WHERE Tables_in_tianyan nu este necesar aici. –  > Por mysql_go.
Edwin Dalorzo
show tables from mydb 
where 
  Tables_in_mydb like '%statistics%' 
  or Tables_in_mydb like '%device%';

Phoenix

Luați lista de tabele folosind codul de mai jos

select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = 'database_name' 

Sper că vă va ajuta.