ホームページ >バックエンド開発 >PHPチュートリアル >2つのテーブルのSQLクエリについて質問します。
2 つのテーブルの SQL クエリについて質問します:
テーブル A は
id title picid
picid ストレージ情報は
a:4:{s:6:"attach";s:2:"74";s:9: " show_type";s:1:"0";s:9:"user_bind";s:1:"1";s:10:"topic_bind";s:0:"";}
テーブル B は
p_id purl
最初にテーブル A にクエリを実行して picid フィールドの添付データを取得しました。出力は配列の形式です
aryy{
[0] 74
[1] 88
....
}
それでは、どうすればよいですかA をクエリします。p_id が 74 88 のテーブル B の一致する ID をクエリするために、テーブルから取得した添付ファイルはどうですか?
コードを説明していただけますか?
最初のステップで取得した配列が
$ar = array(74, 88); であると仮定します
そして、次のようになります
$sql = 'select * from B table where p_id in ( ' . join(',', $ar) . ')';
picid の「attach」の出現順序が固定されている場合は、2 つのテーブルを直接関連付けてクエリすることもできます
たとえば、
select p_id, purl from table B, table A where p_id = SUBSTRING_INDEX(SUBSTRING_INDEX(picid, 4), '"', -1)
最初のステップで取得した配列が
$ar = array(74, 88) であるとします。 );
次に、
$sql = 'select * from B table where p_id in (' . join(',', $ar) . ')';
picid の Attach の出現順序が固定されている場合、 2 つのテーブルを直接関連付けてクエリすることもできます
出現順序が固定されていない場合はどうすればよいですか? 2 つのテーブルをリンクしてクエリを実行することはできますか?
最初に検索するために LOCATE 関数を使用することもできるはずです