今日、私の同僚が MYSQL クエリ ステートメントの作成時に非常に奇妙な問題に遭遇しました。MySQL マルチ テーブル クエリを使用する場合、1 つのテーブルのフィールドが別のテーブルのクエリ条件として使用され、読み取れる情報は 1 つだけですが、数字を直接使用すると正常に読み取ることができます。 SQL ステートメントは次のとおりです。 テーブル a、テーブル 2 b から a.id、a.title、b.idlist、b.aid を選択します。ここで、a.id は (b.idlist) であり、b.aid=2 です。
上記のステートメントは、通常のクエリに使用できますが、クエリできる情報は 1 つだけです。ただし、次のステートメントを使用すると、通常の読み取りに使用できます。 テーブル a、テーブル 2 b から a.id、a.title、b.idlist、b.aid を選択します。ここで、a.id は (1,2,3,4) であり、b.aid=2 です。 これは非常に奇妙な問題です。最初はデータ型の問題だと思いましたが、
では、まずは試しに元のSQL文を次のように変更してみましょう。 FIND_IN_SET(a.id,b.idlist) かつ b.aid=2 であるテーブル a、テーブル 2 b から a.id、a.title、b.idlist、b.aid を選択します。 変更したステートメントを実行すると、最終的に正常に読み取ることができます。原因を分析した結果、最終的にはデータ型の問題が原因でした。直接 in(b.idlist) を実行すると、読み取られる b.idlist は文字型であり、in は数字のみを受け入れます。どちらも "," が付いていますが、実際には完全に異なります。 さて、問題は解決しました。FIND_IN_SET() 関数の使用方法について詳しく知りたい場合は、このページの関連記事をお読みください。 以下もご興味があるかもしれません:
|
>>: VMware Workstation に Windows Server 2019 をインストールする (グラフィック チュートリアル)
個人アカウントのパスワードを変更する一般ユーザーが個人アカウントのパスワードを変更する場合は、他のコ...
Ubuntu ではデフォルトで root ログインが許可されていないため、初期の root アカウン...
序文ますます便利になった今日のインターネット社会では、さまざまなインターネット ランサムウェア ウイ...
目次序文REDOログの生成REDOログ送信REDOログの保存と通知ユーザースレッドに通知要約する序文...
1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...
ファイルコントロールを美しくする理由は何ですか?他の子供たちはみんなきちんとしたきれいな服を着ている...
現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...
この記事では、適応解像度を実現するためのVue2.0の具体的なコードを参考までに紹介します。具体的な...
詳細な手順は次のとおりです。 1. ディスク容量を確認します。 [root@localhost バッ...
毎日の統計情報を取得するプロジェクトを実行する際、プロジェクト ログを分析する必要があります。要件の...
目次Web コンテナとは何ですか? HTTP の性質HTTP リクエスト応答の例クッキーとセッション...
導入当社は、情報セキュリティと機密アプリケーションに関わるいくつかのプロジェクトの研究開発に従事して...
Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...
オペレーティングシステム: Alibaba Cloud ESC インスタンス centos7.4ソフ...
この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...