目次
関数を作成し、静的変数 $city 配列を定義し、都市 ID をキーとして使用し、都市名を次のように使用します値
ホームページ バックエンド開発 PHPチュートリアル 複数の列に対応する 1 つの行に関する MySQL の関連クエリの問題と例と詳細な説明。

複数の列に対応する 1 つの行に関する MySQL の関連クエリの問題と例と詳細な説明。

Jun 23, 2016 pm 01:49 PM
協会 お問い合わせ

テーブルが 2 つあります

t1 テーブルには、id、city_id1、city_id2、city_id3 の 4 つのフィールドがあります

t2 テーブルには、id、city_name の 2 つのフィールドがあります

t1 テーブルの city_id1、2、および 3 は、すべて同じ ID です対応する t2 テーブル

例:

t1 テーブルには 1 つのレコード 1,26,29,50 があります

t2 テーブルには 3 つのレコードがあります
26 北京
29 上海
50 天津

さて、私の要件は次のようになりますSQL文でt1を調べて、city_id1,2,3に該当する都市を表示します 例
結果:1、北京、上海、天津

SQL文はどのように書けばよいでしょうか?ディスカッション (解決策) への返信

select id,  (select city_name from t2 where id=t1.city_id1) as city_name1,  (select city_name from t2 where id=t1.city_id2) as city_name2,  (select city_name from t2 where id=t1.city_id3) as city_name3 from t1
ログイン後にコピー

SQL Bamboo は、別の解決策について話しましょう ~

関数を作成し、静的変数 $city 配列を定義し、都市 ID をキーとして使用し、都市名を次のように使用します値

都市データがバックグラウンドで編集されるたびに、シリアル化された都市データ ファイル

システムの起動時に静的変数にファイルを読み取らせます

この関数は、都市 ID が渡されると、すぐにベースの都市名を返します$city で

静的変数であるため、1 回のリクエストで複数回呼び出すオーバーヘッドはありません。大きな点は、初期化のためにファイルを読み取る必要があることです
これにより、都市に基づいて名前を変換するニーズをすべて解決できますウェブサイトの ID


SQL Bamboo は、別の解決策について話しましょう~
関数を書いて静的変数 $city 配列を定義し、都市 ID をキーとして使用し、都市名を値として使用させます
毎回都市データはバックグラウンドで編集され、シリアル化された都市データのファイルが生成されます

システムの起動時に静的変数にファイルを読み取らせます

この関数は都市 ID を渡すと、$city に基づいて都市名をすぐに返します

静的変数であるため、1 回のリクエストで複数回呼び出すオーバーヘッドは高くありませんが、初期化にはファイルの読み取りが必要です
これにより、Web サイトで都市 ID に基づいて名前を変換するニーズをすべて解決できます


実際、私は今、バックアップ用にこのような都市配列を毎回見つけて、city_id を渡して都市名を取得します

あなたが言及した方法は、この配列をキャッシュすることと同等であり、非常に優れています



xu 大きなメソッドは次のようにすることができますmysql はこのマッチング関係を効率的に処理できると思いました~~~ 最初にキャッシュを使用することしかできないようです


実際、今ではバックアップ用にそのような都市配列を 1 つ見つけます。それを渡します city_id を入力して都市名を取得します

あなたが言及した方法は、この配列をキャッシュすることと同等です

より大きな方法は実装できますが、あまり効率的ではないようです。 mysql はこのマッチング関係を効率的に処理できると考えられていました。それぞれの利点は何ですか?
ひらめき、別のアイデア
都市名を出力する必要がある場合は、まず {CITY:123} の形式で記述します
ページの下部にある ob_get_clean では、正規表現を使用してこれらの情報を見つけ出し、重複する ID を削除し、この非反復 ID のセットに基づいてデータベースをクエリし、名前を置き換えます。このメソッドの消費量はもう少し多くなる可能性があります。 CPU は必要ありませんが、都市に関するデータベースの操作も一度に完了します。最終的には、まだ古い xu の方法を使用しているためです。テーブルは比較的小さいです

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 Mar 28, 2024 pm 03:11 PM

12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

Xuexin.com で学歴を確認する方法 Xuexin.com で学歴を確認する方法 Mar 28, 2024 pm 04:31 PM

Xuexin.com で私の学歴を確認するにはどうすればよいですか? Xuexin.com で学歴を確認できますが、多くのユーザーは Xuexin.com で学歴を確認する方法を知りません。次に、エディターが Xuexin.com で学歴を確認する方法に関するグラフィック チュートリアルを提供します。興味のあるユーザーはぜひ見に来てください! Xuexin.com の使用方法チュートリアル: Xuexin.com で学歴を確認する方法 1. Xuexin.com の入り口: https://www.chsi.com.cn/ 2. Web サイトのクエリ: ステップ 1: Xuexin.com のアドレスをクリックします。上記をクリックしてホームページに入ります [教育クエリ]をクリックします; ステップ2: 最新のWebページで下図の矢印に示すように[クエリ]をクリックします; ステップ3: 新しいページで[学術単位ファイルにログイン]をクリックします; ステップ4: ログインページで情報を入力し、[ログイン]をクリックします。

MySQL と PL/SQL の類似点と相違点の比較 MySQL と PL/SQL の類似点と相違点の比較 Mar 16, 2024 am 11:15 AM

MySQL と PL/SQL は 2 つの異なるデータベース管理システムであり、それぞれリレーショナル データベースと手続き型言語の特性を表しています。この記事では、具体的なコード例を示しながら、MySQL と PL/SQL の類似点と相違点を比較します。 MySQL は、構造化照会言語 (SQL) を使用してデータベースを管理および操作する、一般的なリレーショナル データベース管理システムです。 PL/SQL は Oracle データベースに固有の手続き型言語であり、ストアド プロシージャ、トリガー、関数などのデータベース オブジェクトを記述するために使用されます。同じ

Apple携帯電話でアクティベーション日を確認する方法 Apple携帯電話でアクティベーション日を確認する方法 Mar 08, 2024 pm 04:07 PM

Apple の携帯電話を使用してアクティベーション日を確認する場合、携帯電話のシリアル番号から確認するのが最善の方法ですが、Apple の公式 Web サイトにアクセスし、コンピュータに接続して 3 番目のバージョンをダウンロードすることでも確認できます。 -party ソフトウェアを使用して確認します。 Apple 携帯電話のアクティベーション日を確認する方法 回答: シリアル番号のクエリ、Apple 公式 Web サイトのクエリ、コンピュータのクエリ、サードパーティ ソフトウェアのクエリ 1. ユーザーにとって最善の方法は、自分の携帯電話のシリアル番号を知ることです。シリアル番号を確認するには、[設定]、[一般]、[このマシンについて] を開きます。 2. シリアル番号を使用すると、携帯電話のアクティベーション日を知るだけでなく、携帯電話のバージョン、携帯電話の製造元、携帯電話の工場出荷日などを確認することもできます。 3. ユーザーは Apple の公式 Web サイトにアクセスしてテクニカル サポートを見つけ、ページの下部にあるサービスと修理の欄を見つけて、そこで iPhone のアクティベーション情報を確認します。 4. ユーザー

Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか? Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか? Mar 06, 2024 am 11:54 AM

タイトル: Oracle を使用してテーブルがロックされているかどうかをクエリする方法Oracle データベースでは、テーブル ロックとは、トランザクションがテーブルに対して書き込み操作を実行しているときに、他のトランザクションがテーブルに対して書き込み操作を実行したり、テーブルに構造変更 (列の追加、行の削除など) を加えたりするときにブロックされることを意味します。 、など)。実際の開発プロセスでは、トラブルシューティングを改善し、関連する問題に対処するために、テーブルがロックされているかどうかをクエリする必要があることがよくあります。この記事では、Oracle ステートメントを使用してテーブルがロックされているかどうかをクエリする方法と、具体的なコード例を紹介します。テーブルがロックされているかどうかを確認するには、

データベースの場所のクエリに関するスキルの共有について話し合う データベースの場所のクエリに関するスキルの共有について話し合う Mar 10, 2024 pm 01:36 PM

フォーラムはインターネット上で最も一般的な Web サイト形式の 1 つで、ユーザーに情報を共有し、交換し、議論するためのプラットフォームを提供します。 Discuz は一般的に使用されているフォーラム プログラムであり、多くのウェブマスターはすでによく知っていると思います。 Discuz フォーラムの開発および管理中に、分析または処理のためにデータベース内のデータをクエリすることが必要になることがよくあります。この記事では、Discuz データベースの場所をクエリするためのヒントをいくつか紹介し、具体的なコード例を示します。まず、Discuz のデータベース構造を理解する必要があります。

Oracle インスタンスの数とデータベースのパフォーマンスの関係 Oracle インスタンスの数とデータベースのパフォーマンスの関係 Mar 08, 2024 am 09:27 AM

Oracle インスタンスの数とデータベースのパフォーマンスの関係 Oracle データベースは、業界でよく知られたリレーショナル データベース管理システムの 1 つであり、エンタープライズ レベルのデータ ストレージと管理で広く使用されています。 Oracle データベースでは、インスタンスは非常に重要な概念です。インスタンスとは、メモリー内のOracleデータベースの実行環境を指します。各インスタンスには独立したメモリー構造とバックグラウンド・プロセスがあり、ユーザー・リクエストの処理とデータベース操作の管理に使用されます。インスタンスの数は、Oracle データベースのパフォーマンスと安定性に重要な影響を与えます。

MySQL の外部キーと主キーを自動的に関連付けるにはどうすればよいですか? MySQL の外部キーと主キーを自動的に関連付けるにはどうすればよいですか? Mar 15, 2024 pm 12:54 PM

MySQL の外部キーと主キーを自動的に関連付けるにはどうすればよいですか? MySQL データベースでは、外部キーと主キーは非常に重要な概念であり、異なるテーブル間の関係を確立し、データの整合性と一貫性を確保するのに役立ちます。実際のアプリケーションプロセスでは、データの不整合を避けるために、外部キーを対応する主キーに自動的に関連付けることが必要になることがよくあります。以下に、具体的なコード例を通してこの機能の実装方法を紹介します。まず、2 つのテーブルを作成する必要があります。1 つはマスター テーブル、もう 1 つはスレーブ テーブルです。メインテーブルに作成

See all articles