2016-04-25 29 views
2

から選択します。私はこの日付28/01/2016私はこのようなレコードを持っている私のMySQLデータベース内部の日付(文字列形式)

を持って

----------------------------------- 
id | datePost 
----------------------------------- 
1  |  24/01/2015,13/02/2016,29/12/2016 

をそして、私のクエリ幅私は、クエリ場合は検索する必要が日付はdatePostの間です(2012年2月28日がdatePost値の間にある場合)

私はdatePostを展開して比較結果配列をforeachしたと思いますか?問題は、テーブル内に多数のレコードがあり、検索が遅くなることがあることです。

あなたはどう思いますか?最善の方法は何ですか?

+0

どのように '24/01/2015,13/02/2016,29/12/2016'は来る?それはクエリからですか?その場合は、クエリを追加します。 –

+2

DBを正規化する必要があります –

+2

データ構造を修正しました。 1つのポストに1つの行があるテーブルが必要で、その行に日付を付けることができます。 –

答えて

0

代わりのforeachかなり遅くなりますあなたのクエリをINGの、ワイルドカード

$date = "28/01/2016" 
$qry_dates = mysql_query("SELECT * FROM dates_table WHERE datePost LIKE '%$date%'"); 

を使用するSELECT文を使用してみてください、私はこれをテストしていませんが、多分それは照会するPHPを使用するよりも速くなりますモール。選択完全なSQLはこのようになりますあなたは、PHPについては何も言及しなかった

EDIT:

SELECT * FROM date_table WHERE datePost LIKE '%28/01/2016%' 
+0

ありがとうもう一度すべて 私の問題についてのより詳しい情報は、データベースがワードプレスであるので、日付はポストメタテーブルの中に保存されています。 @ntgCleaner日付の間に検索する必要があります – user44321

+0

@ user44321、ああ、日付範囲を検索する必要がありますか?あなたのテーブルをフォーマットせずに、私はそれがどのように(簡単な方法で)可能かはわかりません。あなたは、データベースに日付を追加するためにWordPressのプラグインを使用していますか? – ntgCleaner

関連する問題