今日、私の同僚が 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 をインストールする (グラフィック チュートリアル)
MySQLデータベースのインストールに関するメモ、みんなで共有a) MySQL ソースインストールパ...
序文比較的複雑な大規模システムでは、複雑なロジックで処理する必要があるオブジェクトまたはデータ フロ...
私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...
まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。...
序文: Linux ホストは、エージェント プログラムをインストールする場合でも、SNMP を使用す...
環境の準備1. 環境構築React Native 中国語ウェブサイト2. 開発ツール フロントエンド...
Windows リモート デスクトップを使用してサーバーに接続したことがある人なら、リモート デスク...
Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...
Ubuntu 16.04 FTP サーバーをビルドするftpをインストールするftp をインストール...
目次font-faceでフォントを正しく宣言するフォントをプリロードするフォントをホストするにはli...
優先度両方のケースで同じ条件を設定すると、異なる結果セットが生成される可能性があるのは、優先順位のた...
1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...
ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...
元の構成: http { ...... limit_conn_zone $binary_remote...