今日、私の同僚が 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. 準備1.1 service.bat を含む tomcat 圧縮パッケージをダウンロードします。...
以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...
コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...
MySQL 5.7.13 Mac用インストールチュートリアル、非常に詳細で、以下のように記録されてい...
目次序文Mysql の case when 構文:事例実践:要約:序文今日、プログラムを開発している...
この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...
SFTPの概念sftp は、安全なファイル転送プロトコルである Secure File Transf...
目次 はじめに 同期 非同期とブロッキング JavaScript のノンブロッキング コールバック ...
効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...
この記事では、MySQL 8.0.12のインストールされていないバージョンを設定して起動するための具...
システム環境: Windows 7 1. DockerをインストールするDocker公式サイトからd...
ダイナミックレム1. まず、現在の長さの単位を紹介しましょうpx em Mの幅 / 漢字の幅 1em...
多くのプロジェクトでは、検証コードの送信など、カウントダウン機能を実装する必要があります。ここで、簡...
1. 公式ウェブサイトにアクセスして、jdk-8u162-linux-x64.tar.gzなどのLi...
1. Centos7をダウンロードするダウンロードアドレス: https://mirrors.tun...