ホームページ  >  記事  >  バックエンド開発  >  2 つのテーブルをクエリして出力する

2 つのテーブルをクエリして出力する

WBOY
WBOYオリジナル
2016-06-23 14:05:01937ブラウズ

全体の状況は次のとおりです:
テーブル A の構造
ID 名情報
1 列 1 (ストレージ スタイルは a:{s:6:"picid";s:2:"74";s:9:"text" ; s:1:"ストレージコンテンツエリア";})
2 列 2 (ストレージスタイルは:{s:6:"picid";s:2:"75";s:9:"text";s :1 : "ストレージコンテンツ領域";})
B テーブル構造
ID URL
74 ピクチャパス
まず、クエリを通じて、テーブル A の情報の picid の ID 番号 74,75 を持つ配列が取得されます
出力スタイルは次のとおりです:
Array
(
[0] => 74
[1] => 75
)
次に、テーブル B の ID 74 と 75 のデータをクエリします
次に、これら 2 つのテーブルの内容を関連付けて出力するにはどうすればよいでしょうか?
出力結果は次のとおりです。
配列
(
[0] => 配列
( gt; 列 1
=> info のテキストの内容
=>列 1
=& gt;の内容text in info
)
….



ディスカッションへの返信 (解決策)

直接 SQL は確認するのが簡単ではありません。プログラムを使用することをお勧めします。推奨 プログラムを使用して実装します。
実行方法
a:{s:6:"picid";s:2:"74";s:9:"text";s:1:"storage content area" ;} これはシリアル化された文字列ですが、間違っています

まず、クエリを通じてテーブル A の picid ID 番号 74 と 75 の配列を取得します

列 1 は 74 だけではないでしょうか?クエリはテーブル A の情報で picid ID 番号 74 と 75 の配列を取得しました。これはどこから来たのでしょうか? それは忘れましょう。 :2:"74";s:9:"text";s:1:"storage content area";} これはシリアル化された文字列ですが、間違っています
完全にコピーしていません

両方の時間をクエリします。使用した JSON テーブル クエリは機能しません

info 内のテキストの内容を抽出する式

substring_index(substring_index(substr(info,locate('"text"', info)), '"', 4 ), '"', -1) 情報として

2 つのテーブル間の関連付け条件

Table B.id = substring_index(substring_index(substr(info,locate('"picid"', info)), '"', 4) , ' "', -1)

式は非常に長いので、ストアド プロシージャを使用して短縮できます

原理は非常に簡単です

a:{s:6:"picid";s:2:"74"; s: 9:"text";s:1:"Storage content area";}
substr(info,locate('"picid"', info)) は、「picid」を取得するために使用されます。
「picid」の段落を参照してください。 ;s: 2:"74";s:9:"text";s:1:"ストレージ コンテンツ領域";}
内側の substring_index は、"
"picid";s が 4 回出現する前のコンテンツを取得するために使用されます。 :2: "74

外側の substring_index は、"

74

" が最後に出現した後の内容を取得するために使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。