私はMySQLの専門家ではなく、主にtsqlで開発していますが、特定の日付範囲に基づいてテーブルあたりのレコード数を与える動的なコードを書く必要があります。下のコードは、私のデータベース内のすべての私のテーブルの行数を提供しますが、私は各テーブルのレコードを持って、それが私が照会できるcreate_dateフィールドを持っているかどうかを言う2番目のテーブルがあります。私がしたいのは、セカンダリテーブルを見て、select文を構築するために利用可能な場合はcreated_dateフィールドを使用するように私のコードを変更することです。この計画では、プロシージャの最上部にある日付を渡して、その日付を使用して、必要なフィールドが使用可能な場合にのみカウントを計算します。使用できない場合は、合計レコード数が表示されます。レコード数が動的mysql
私はMYSQLが私のものではありませんが、私は学びたいと思います。
おかげP
SET SESSION group_concat_max_len = (1000000);
SET GLOBAL max_allowed_packet = (50*1024*1024);
select
-- Sort the tables by count
concat(
'select * from (',
-- Aggregate rows into a single string connected by unions
group_concat(
-- Build a "select count(1) from db.tablename" per table
concat('select ',
quote(db), ' db, ',
quote(tablename), ' tablename, '
'count(1) "rowcount" ',
'from ', db, '.', tablename)
separator ' union ')
, ') t ')
into @sql
from (
select
table_schema db,
table_name tablename
from information_schema.tables
where table_schema not in
('sampledatabase')
) t;
-- Execute @sql
prepare s from @sql; execute s; deallocate prepare s;
こんにちはSolarflare、それはまさに私が探していたもので、あなたは毎日新しいものを学びます。 – PJD