web-dev-qa-db-ja.com

meta_value直列化配列による順序

こんにちは私はwpクエリを使用して投稿を取得しようとしています。 1つだけ問題があります - 投稿を特定のmeta_valueでアルファベット順にソートしようとしています。つまり、このmeta_valueは直列化された配列です。シリアル化を解除せずにこれを行う簡単な方法はありますか?ありがとうございます。

a:1:{i:0;a:1:{s:7:"people";s:16:"Tanya Garca";}}

ところで、私は自動的にシリアル化されたそれを保存するこのプラグインを使用しているので私はmeta_valueが保存されている方法を変更することはできません。

2
KT.

シリアル化を解除せずにこれを行う簡単な方法はありますか?

信頼できる方法ではありません。確実にその値をORDER BYできますが、ソートにはシリアル化された文字列全体が使用されるため、技術的に正確な結果が得られますが、必要な結果は得られません。クエリ自体の中でソート用の文字列の一部を抽出することはできません。あなたが SUBSTRING のようなデータベース関数へのアクセスを与える生のSQLを書いたとしても、私はそれをする確実な方法を考えることができません。値をシリアル化解除するMySQL関数が必要です - 自分でそれを書かなければなりません。

基本的に、meta_valueをソートする必要がある場合は、シリアル化して保存することはできません。ごめんなさい。

値の保存方法を変更できない場合は、投稿をプルしてそれらをソートしてソートし、次にそれらをもう一度ループしてソート結果を表示する必要があります。

1
s_ha_dum