0
我有一個名爲db_contacts
的數據庫,它包含用於存儲各個聯繫人的每個帳戶的表。每個表的格式都是相同的,其中一個日期列被稱爲birthday
。如何從包含當前月份的日期的數據庫的所有表中搜索所有記錄?
我想要做的就是搜索db_contacts
中每個表格的每個記錄,查找月份等於當前月份的日期。
有沒有辦法做到這一點只使用一個查詢,或者我將不得不分別查詢每個表?我真的在爲如何做到這一點而感到茫然。
我在想這樣的事情,但是這並不能在所有的工作:
$connection = new PDO("mysql:host=localhost", "foo", "bar");
$month = date("m");
$db = $connection->prepare("
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'birthday'");
$db->execute();
foreach ($db as $table) {
for ($i = 0; $i < sizeof($table); $i++) {
$db = $connection->prepare("
SELECT birthday FROM $table[$i] WHERE MONTH('birthday') = $month;");
$db->execute();
foreach ($db as $row) {
echo $row[0];
}
}
}
我傾向於認爲你可以消除FOR($ 1 =。。。)循環,然後在每個表上執行第二次選擇FOREACH($ db ...。steps),並且可能不會在FOREACH循環中重新定義$ db – BigScar 2015-04-01 23:40:43
我應該問一下爲什麼你對每個賬戶都有不同的表格?你可能會修復這些代碼,但是它會很多在一個查詢中更有效地完成它。我的Mysql雖然不夠好。 – 2015-04-01 23:45:52
@TonyHopkinson我原本打算把所有賬戶的所有聯繫人都放在同一個表格中,但是認爲將它們組織起來更好。 – 2015-04-01 23:52:44