0

1 つの列は次のような値を返します。

Something";s:5:"value";s:3:"900";s:11:"print_

上記の場合は 900 です。MySQL でそれを行うにはどうすればよいですか? 多分正規表現を使用していますか?インデックスは使用できません。文字列の長さと文字列内の数値は異なる場合があります。

ありがとう!

4

2 に答える 2

0

MySQL を使用してそれらを抽出することはできません。そのためには他の言語を使用してください。できることは、スクリプトの作業を容易にする Where 句を含めることです。

テーブル「例」で列が「シリアル化」と呼ばれていると仮定します

SELECT serialized FROM example WHERE serialized REGEXP '[0-9]{3,}'

REGEXP は単に 1 または 0 を出力していることに注意してください

クエリを実行した後、言語の正規表現関数を使用して、次のように数値を抽出します。

([0-9]{3,})*

于 2013-03-08T12:51:18.393 に答える
0

PHP を使用している場合は、unserialize() を試してください。そして、それを var_dump して、文字列と配列を確認します

于 2013-03-08T12:50:25.710 に答える