今日、私の同僚が 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 をインストールする (グラフィック チュートリアル)
目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...
目次序文1. クロスドメインの問題はなぜ発生するのでしょうか? 2. 解決策クロスオリジンリソース共...
序文ご存知のとおり、Linux は ext4、ext3、ext2、sysfs、securityfs、...
Nginx は、高性能な Web サイト サーバーおよびリバース プロキシ サーバーであり、IMAP...
最近、コンピューターの電源を入れたところ、Geek Academy が新規ユーザーに 1 か月の無料...
序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...
目次回避策Vue2.0 で 2 つの配列の変更を監視できないのはなぜですか?ソースコード分析ヴュー3...
httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...
vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...
目次1. 基本的なイベント処理2. 親コンポーネントにカスタムイベントを送信するマウス修飾子4. キ...
1. IE8 の getElementById は id のみをサポートし、name はサポートしま...
1.html <div class="ログインボディ"> <...
通常のプログラムと比較すると、ダイナミック リンク ライブラリにはメイン関数がなく、一連の関数の実装...
質問: 360ブラウザの互換モードなど、一部のブラウザでは、 <td style="...
この記事では、主に実際のアプリケーションでよく使用されるMySQLの時刻と日付、および変換関数につい...