MySQL データベースのステートメント ワイルドカード ファジー クエリの概要

MySQL データベースのステートメント ワイルドカード ファジー クエリの概要

MySQL エラー: パラメータ インデックスが範囲外です (1 > パラメータ数、つまり 0) - MySQL データベースのステートメント ワイルドカード ファジー クエリの概要

はじめに 今日、MySQL ステートメントを使用して追加、削除、変更、およびクエリ操作を実行すると、コンソールに次のエラーが報告されました: パラメータ インデックスが範囲外です (1 > パラメータ数、つまり 0)。翻訳すると、結果データは 1、真の値は 0 であるはず、パラメータは範囲外であり、エラーが発生することを意味します。これにより、どこで間違いを犯したか、つまりパラメータ、つまりワイルドカード「?」の処理が明らかになります。この記事では、一般的な SQL ステートメントを実行するときや、ワイルドカード ファジー クエリに like ステートメントを使用するときに発生するエラーを分析し、解決策を示します。

ここに画像の説明を挿入


1. SQL文を分析する

1. 一般的なSQL文のクエリ分析

まず、以前使用した SQL ステートメントを分析してみましょう。

文字列 sql = "tab_route から count(*) を選択します (cid = ?");

: ワイルドカード"?"を直接使用してパラメータを置き換え、Spring フレームワークの JdbcTemplate を使用して追加、削除、変更、およびクエリ操作を実行します。ここに問題はありません。

2. 一般的なSQLクエリ文の処理方法

ここでエラーが発生した場合は、次のように解決してください。

ワイルドカード"?"の形式を確認してください。これは中国語の疑問符ではなく、英語の入力方法で入力されていることに注意してください。SQL ステートメントを確認してください。ワイルドカードを使用して渡されるパラメータは引用符で囲まれていません。たとえば、次の例は間違っています。

文字列 sql = "cid = '?' の場合、tab_route から count(*) を選択します";

3. ワイルドカードのようなあいまいクエリステートメント分析を使用する

同様に、上記の方法を使用してファジー クエリ操作を実行し、失敗する SQL ステートメントを確認します。

文字列 sql = "select count(*) from tab_route where rname like '%?%';

実行結果はエラーです: Parameter index out of range (1 > number of parameters, which is 0)

結果分析: 結果データは 1 で、真の値は 0 である必要があり、パラメータが範囲外であるため、エラーが発生します。

以下の記述には問題がないことを明確にします。

文字列 sql = select * from tab_route where rname like '%张%';

これにより、どこで間違いを犯したかが明確になります。つまり、パラメータ、つまり、like ステートメント内のワイルドカード"?"の処理です

2. 類似文におけるワイルドカードを使用したファジークエリの分析

1. 類似ステートメントの適用シナリオ

ワイルドカード「like」を使用してあいまいクエリを実行することは、検索ボックス内のデータに対するあいまいクエリなど、プロジェクトでよく発生するものです。

2. あいまいクエリ分析

SQL ステートメントで'%?%'直接解析することはできないため、連結された文字列を処理し、動的連結concat()メソッドを使用して'%?%'の内容を連結してから、追加、削除、変更、およびクエリ操作を実行する必要があります。

concat(str1, str2, str3...)は新しい文字列を生成します

3. 正しい文章

文字列 sql = "tab_route から count(*) を選択し、rname を concat('%',?,'%') のように指定します";

3. MyBatisのようなあいまいなクエリとキーワードの区別

MyBatis でファジー クエリを使用する場合、キーワードは#{str}であり、クエリ句は次のようになることに注意してください。

concat('%',#{name},'%'); のように名前が付けられたテーブルから * を選択します。

並べ替えフィールドを追加する場合、キーワードは${str}であり、クエリ句は次のようになることに注意してください。

select * from table where name like concat('%',#{name},'%') order by ${id};

概要 この記事では、通常の SQL ステートメントを実行するとき、およびワイルドカード ファジー クエリに like ステートメントを使用するときに発生するエラーを分析し、対応する解決策を示します。同時に、MyBatis でのあいまいクエリの操作と異なるキーワードの区別が補足されます。コーディングまでの道のりは長いので、気をつけていただければと思います。

ここに画像の説明を挿入

これで、MySQL データベースのようなステートメントのワイルドカード ファジー クエリの概要に関するこの記事は終了です。より関連性の高い MySQL ファジー クエリのようなコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL ファジークエリの使用法 (通常、ワイルドカード、組み込み関数)
  • Mysql | ワイルドカード(%、_ など)を使用したファジークエリの詳細な説明
  • MySQL でのワイルドカードを使用したファジークエリの実装に関する簡単な説明
  • MySQL ファジークエリにおけるワイルドカードエスケープについての簡単な説明
  • MYSQL 必読ノート 第 8 章: フィルタリングにワイルドカードを使用する
  • MySQLでワイルドカードを使用する際の注意点
  • MySql のファジークエリワイルドカードの使用に関する詳細な紹介
  • mysql 正規表現 LIKE ワイルドカード
  • mysql ワイルドカード (sql 高度なフィルタリング)

<<:  Web プロジェクト開発における 2 つのトークン理由とサンプル コードの分析

>>:  Nginx のパフォーマンスを向上させるための提案

推薦する

MySQL 8.0.12 インストール グラフィック チュートリアル

MySQL8.0.12 インストールチュートリアルをみんなで共有します。 1. インストール1.イン...

Linux のファイル システム タイプの表示方法の例

Linux でパーティションのファイル システム タイプを確認する方法。パーティションのファイル シ...

Linux CRM デプロイメント コードの詳細な説明

Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...

JavaScript プロトタイプオブジェクトの this ポイント問題の詳細な説明

目次1. これは2. この点を修正する1. call() メソッド2. apply() メソッド要約...

JavaScript排他的思考の具体的な実装

前回のブログで、Xiao Xiong は関連する要素の操作方法を更新しましたが、同じ要素のグループが...

フラッシュコンテンツの表示に使用される OBJECT タグと EMBED タグの違いの紹介

1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...

HTMLを使用してシンプルなメールテンプレートを作成する

今日は、「ローテク」の問題について書きたいと思います。ちなみに、私は JavaScript Week...

VMware esxi6.5 のインストールと使用の詳細な手順

目次導入建築ESXIの利点vSphere とは何ですか? 2. 仮想マシンの利点3. 仮想マシンを使...

IDEA が MySQL データベースに接続できない問題の 6 つの解決策

この記事では、IDEA が MySQL データベースに接続できない問題に対する 6 つの解決策を主に...

IE6/7 は混乱するだろう: 空のテキスト ノードの高さの問題

序文: ietester でドキュメント コードを表示するには、debugbar を使用します。すべ...

MySQL 整合性制約の例の詳細な説明

この記事では、MySQL の整合性制約について説明します。ご参考までに、詳細は以下の通りです。メイン...

Vue3は画像拡大鏡効果を実現します

この記事の例では、画像拡大鏡効果を実現するためのVue3の具体的なコードを参考までに共有しています。...

MySQL を使用してポート 3306 を開いたり変更したり、Ubuntu/Linux 環境でアクセス許可を開く

オペレーティングシステム: Ubuntu 17.04 64ビットMySQL バージョン: MySQL...

Mysql の一般的なベンチマーク コマンドの概要

mysqlslap共通パラメータの説明–auto-generate-sql システムはテスト用のSQ...

クリックして展開し、全文を読む機能を実現する純粋なCSS

注記記事表示リストインターフェースを開発する場合、情報の基本的な概要を提供するために記事ヘッダーコン...