use information_schema;
select table_name,table_rows from tables
where TABLE_SCHEMA = 'test'
order by table_rows desc;
Ce qui précède est l'instruction de requête existante, qui peut trouver toutes les tables de l'ensemble de la base de données et la quantité de données contenues dans la table.
Maintenant, je veux le décomposer :
Par exemple, il y a 1 000 tables dans la base de données de test, et je veux seulement vérifier combien de données il y a dans 200 d'entre elles (spécifiées) contenant la date spécifiée (il y a est un champ de date, le type est mediumtext) .
Comment rédiger une requête comme celle-ci ?
-----------------Question modifiée---------------------------------------
est mon expression Pas sûr, laissez-moi la décrire à nouveau :
Comme le montre l'image ci-dessus, j'ai de nombreuses tables dans la base de données de test, et chaque table contient beaucoup de données. Chaque table a un champ "time", le type est mediumtext, tel que 2017-5-9 16:44:24.
Je souhaite interroger plusieurs tables à la fois pour voir combien de données chaque table contient et contient "l'heure" spécifiée (2017-5-9).
utilisez information_schema ;
sélectionnez table_name, table_rows dans les tables
où TABLE_SCHEMA = 'test' et TABLE_NAME dans ('Specification 1','Specification 2',.......,'Specification 200') et UPDATE_TIME = 'Specification Time'
order par table_rows desc;
L'auteur parle de trouver la table contenant le champ de date du type spécifié, n'est-ce pas ? information_schema a également une table de colonnes et vous pouvez effectuer une requête conjointe