ORDER BY
を検索するか、列を検索する必要がある場合にのみ照合が異なります。これらのbase64でエンコードされた項目はおそらく検索またはソートされません。
あなたのエンコードされたアイテムは、長さ未満64Kバイトであることが保証されている場合は、このようなあなたの列を定義します。
`columnname` TEXT CHARACTER SET ascii,
これは、変数をbase64エンコードするために必要なのは、まさにです。エンコーディングプロセスはすべてを表示可能なASCIIに変換します。
アイテムの長さが16メガバイト未満で、長さが64キロバイトを超える場合は、TEXT
の代わりにMEDIUMTEXT
を使用します。
年後に編集します。
OQエンコードされた文字列、デコード、シリアライズされたPHPオブジェクトです:
a:2:{s:20:"Type_of_organisation";s:20:"Member of Parliament";s:8:"Postcode";s:7:"PE1 1JA";}
観察1:このようなものの多くは、UTF8またはutf8mb4文字セットを使用して、それをコードすることなく、テキスト列に格納されます。たくさん?はい。 WordPressはオプションデータをこのように保存します。
観測2:JSONに変換できる場合は、最近のバージョンのMySQLでJSONデータ型を使用できます。 JSON検索は依然として可能ではありませんが、構造化されています。
これは*既に* base64なので、なぜCHAR/VARCHARだけではないのですか? BINARY、VARBINARY、およびBLOBは、(ベース64エンコードされていない)バイナリデータの格納に適しています。それは小さな値であるように見えるので、私はBINARY対BLOBを提案します。 – user2246674
鮮やかな、何らかの理由で私はバイナリを使用するとは思わなかった! :) –
ああ、たまに私はSOに投稿されたものをデコードするのが好きです。この種の構造では、特定のデータを適切に照会するのは面倒です。 – HamZa