ホームページ > バックエンド開発 > PHPチュートリアル > mysql比较难的一个字段排序的问题

mysql比较难的一个字段排序的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-06 20:52:08
オリジナル
872 人が閲覧しました

某个字段的结果是json格式比如

["12312","我是我",0]

我希望按照12312这个值来进行排序,请问能实现么?

回复内容:

某个字段的结果是json格式比如

["12312","我是我",0]

我希望按照12312这个值来进行排序,请问能实现么?

如果你的应用比较简单,数据量也不大,我的建议是,把需要排序的字段单拎出来,作为一个索引字段。也就是

"12312" | ["12312","我是我",0]
ログイン後にコピー

如果你觉得,你的应用场景会越来越复杂,或者需要索引的数据量非常大,那么可以考虑MongoDB,直接把 数据反序列化,以每个字段的方式存进去,也就是

"12312" | "我是我" | 0
ログイン後にコピー

使用NoSQL还是要谨慎。。。能用MySQL搞定的,尽量用MySQL

首先MySQL不支持BSON也不支持JSON,即使存储JSON也是序列化之后的。所以排序的话得自己实现。无论是从MySQL端排序还是从脚本端排序,这都不是很好的实现方式,因为需要一个反序列化的操作。
其次你这样的存储方式是类似文档数据库的存储方式(就是NoSQL的一种),而MySQL是关系型数据库,所以临建一张表再将数据移出去是最好的方式。或者改用文档型数据库比如Mongodb。

参考 @gaosboy
如果你的数据量不大,而且只是为了简单的实现这个功能(不考虑效率)
order by cast(mid(fname, 3) as unsigned)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート