2011-07-21 11 views
0

私は日付をカンマで区切ってmysqlにVARCHARフィールドを持っています。このように:MysqlはREGEXを使用してVARCHARを日付に変換します

where `date` > '10/10/2011' 

は、だから私の質問は基本的にどのように私は私のフィールドに最初の日付を取得するために(多分)正規表現を使用することができます(I:

"10/20/2011,10/21/2011,10/22/2011" 

私はWHEREこのような条件を使用する必要があります最初のものだけが必要です)、どこに条件を適用しますか?

+0

あなたはMySQLをどのような技術から呼び出すのですか? –

+1

カンマ区切りのリストを単一のセルに格納しないでください。私はあなたがあなたのデータベースを再構成してテーブルを追加すべきだと思っています。ここには多対多の関係があるようです。 – Paulpro

答えて

1

これはコンマ,前に、最初の部分のみを取得します:

SUBSTRING_INDEX(varcharField, ',' , 1) 
あなたはその後、 date形式に変換する必要があり

:あなたは既に言われているとおり、保存

STR_TO_DATE(SUBSTRING_INDEX(varcharField, ',', 1), '%m/%d/%Y') 
0

コンマで区切られたリストは悪い考えです。しかし、それはあなたの職務や能力の範囲内でテーブルを再構築することが何度もありません。

私はフルテキストインデックスとマッチングを調べるべきだと思います。これにより、フィールド内の検索が可能になります。残念ながら、MyISAMテーブルでのみ利用可能です。

関連する問題