mysql とはどういう意味ですか?

藏色散人
リリース: 2021-11-29 11:59:50
オリジナル
5522 人が閲覧しました

mysql in は、where 式でよく使用されます。その機能は、特定の範囲内のデータをクエリすることです。その使用構文は、「select * from where field in (value1, value2, value3,...)」のようなものです。 」。

mysql とはどういう意味ですか?

#この記事の動作環境: Windows7 システム、mysql5.7、Dell G3。

mysql in とはどういう意味ですか?

mysql での in の使用法の詳細な説明

1. 基本的な使用法

mysql では、where 式で in がよく使われますが、その機能は特定の範囲内のデータをクエリすることです。

select * from where field in (value1,value2,value3,…)
ログイン後にコピー

IN の前に NOT 演算子がある場合、IN の逆の意味、つまりこれらのリスト項目内で選択しないことを意味します

select * from where field not in (value1,value2,value3,…)
ログイン後にコピー

2. IN サブクエリ

Update 多くの場合、IN リスト項目の値はあいまいで、サブクエリを通じて取得できます。

SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
ログイン後にコピー

この SQL 例では、ステータスが 0 であるすべてのユーザーを検索する関数を実装しました (おそらく、は禁止されています)すべての記事。まず、クエリを通じて status=0 のすべてのユーザーを取得します:

SELECT uid FROM user WHERE status=0
ログイン後にコピー

次に、クエリ結果を IN のリスト項目として使用して、最終的なクエリ結果を取得します。サブクエリで返される結果はフィールドである必要があることに注意してください。リスト項目。

in サブクエリでは、クエリ効率が低いという問題がよく発生します。解決策は次のとおりです:

1. それでも in サブクエリを使用して、もう一度クエリを実行します

SELECT * FROM basic_zdjbxx WHERE suiji IN ( SELECT zdcode FROM ( SELECT zdcode FROM basic_h WHERE zdcode != "" ) AS h )
ログイン後にコピー

2. LEFT JOIN を使用します

SELECT zd.* FROM ( SELECT DISTINCT zdcode FROM basic_h WHERE zdcode != "" ) AS h LEFT JOIN basic_zdjbxx zd ON zd.suiji = h.zdcode
ログイン後にコピー

3. IN 演算子に関する補足説明

IN リスト項目は、数値だけでなく文字、さらには時刻や日付の型もサポートしており、これらのさまざまなタイプを組み合わせることができます。データ項目の種類 列の種類と一致しない混合配置:

SELECT * FROM user WHERE uid IN(1,2,'3','c')
ログイン後にコピー

IN は 1 つのフィールドでのみ範囲比較を実行できます。より多くのフィールドを指定したい場合は、AND または OR 論理演算子を使用できます:

  SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','manong')
ログイン後にコピー

AND または OR 論理演算子を使用した後、IN を LIKE、>=、= などの他の演算子と一緒に使用することもできます。

4. IN 演算子の効率について

IN のリスト項目が確実な場合は、代わりに複数の OR を使用できます:

SELECT * FROM user WHERE uid IN (2,3,5)
ログイン後にコピー

// 同等のものは次のとおりです:

SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5)
ログイン後にコピー

一般に信じられている点:

1. インデックス フィールドを操作する場合、IN よりも OR を使用した方が効率が高くなりますが、リストの項目が不確実な場合 (クエリを取得するためにサブクエリが必要な場合など)結果 )、IN 演算子を使用する必要があります。また、サブクエリテーブルのデータがメインクエリよりも小さい場合には、IN 演算子も適用できます。

2. or がフィールドにインデックスを追加しない場合、接続されるフィールドが増えるほど (1 または 2、3、4 または...)、 or のクエリ効率はそれよりも大幅に低くなります。の。

推奨学習: 「mysql ビデオ チュートリアル

以上がmysql とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート