質問: MySQLで条件を指定してパーティションを検索し、その検索結果の数を取得したいです。 testテーブルの7日以上前のデータを取得し、その数を出そうとしています。 現状は以下の通りです。 ``` month=$(date -d "7 day ago" '+%Y%m%d') partition="SELECT PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='test';" ``` 下記の様な書き方をしてみたのですが構文エラーになりました。 ``` SELECT PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='test' (CURDATE(),date -d "7 day ago" '+%Y%m%d'); ``` どうすれば条件指定をして結果の数を取得できるのでしょうか? お手数かけいたしますが、どなたかお分かりになる方、ご教授頂けますとありがたいです。 追記 現状のわからないこと ・パーティションの確認方法で検索して出てきた以下を実行すると一覧が出てきたのでこれであっていると思っていたが、パーティションの確認方法は本当にこれであっているのかがわからない。(test以外は全て調べて出てきた文。) ``` SELECT PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='test' ``` ・条件を指定してパーティションを削除することはできているので、同じく条件を指定して内容を取得することはできると思っていたがどう記述すれば想定どおりに動いてくれるのかがわからない。
回答: ``` SELECT count(*) from INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='test' AND DATE_SUB(DATE(CURDATE()), INTERVAL 7 DAY) > CURDATE(); ``` としたら出来ました。