データベースにエンコードされているフィールドがあります。フィールド上from_base64使用した後は、それは次のようになります。パスの先頭に文字列の未知数があるかもしれませんMySQLでBase64でエンコードされた文字列の一部を取り出す方法は?
<string>//<string>//<string>/2017//06//21//<string>//file.txt
、しかし、日付(YYYY // MM // DD)は常に2つを持っています右のフィールド(ファイル拡張子に続く文字列)。
このYYYY // MM/DDパターンでソートし、この日付のすべてのパスの数を取得します。
だから基本的に私はこれをしたい:
select '<YYYY//MM//DD portion of decoded_path>', count(*) from table group by '<YYYY//MM//DD portion of decoded_path>' order by '<YYYY//MM//DD portion of decoded_path>';
の作品自分のフィールドに検索したいテキストを区切ります。データには識別子(名前/値のペアまたはjsonまたはxml)がないため、クエリ内の文字列を解析するのにプロセッサが集中します。私はそれが最初の文章のタイプミスであると推測しています。あなたが提案した方法を使うことで、大きなパフォーマンスが見込まれます。デコードされた列を解析し、検索可能な情報をそれ自身の列に入れる更新を実行する方がはるかに高速です。 –
行を挿入するときに日付を別の列として挿入しないのはなぜですか? – mikep
2017年前の二重スラッシュではなく、単一のスラッシュですか? –