0

SQL クエリを作成したいのですが、次のような SQL SELECT ステートメントで IF...THEN を実行するにはどうすればよいですか。

4

4 に答える 4

2

OR2 つのブール句を接続する演算子を使用できます。

WHERE name LIKE ...
   OR name LIKE ...

ORは よりも優先順位が低いことに注意してくださいAND。したがって、これを他の制限と組み合わせたい場合は、括弧を使用する必要があります。例えば:

WHERE ( name LIKE '%a%' OR name LIKE '%b%' )
  AND id < 1000
于 2013-02-18T02:48:48.240 に答える
1

SQL はプログラミング言語ではありません。if、then、else などはありません。必要な条件が AND や OR などの集合演算で表現できる場合は、それが可能です。

それ以外の場合は、ストアド プロシージャ、ストアド関数、またはストアド ルーチンを記述する必要があります。http://dev.mysql.com/doc/refman/5.1/en/stored-routines.htmlを参照してください。手続き型コードを記述できます。通常、セット操作ははるかに高速です。

于 2013-02-18T02:55:24.877 に答える
1

MySQL はIFステートメントとCASEステートメントをサポートしています。a と b がいずれかのテーブルの列であり、 name がもう一方のテーブルの列であると仮定して、次のようなことを試してください。

 select name 
    from table1,table2
    where name like 
       case 
          when name like a 
          then a
          else b
       end

そしていくつかのサンプル フィドル: http://sqlfiddle.com/#!2/c6ce6/1

LIKE クエリで '%' を使用したい場合があります。その場合は、それに応じて CONCAT を使用してください。必要に応じて、この同じロジックを代わりに文字列値で使用できます。

あなたの質問を完全に理解し、最良の回答を提供できるように、テーブル構造、サンプル データ、および必要な出力を投稿してください。

于 2013-02-18T02:56:43.897 に答える
0

mysql ストアド プロシージャhttp://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspxを試したことがありますか?

「if」および「else」ストアド プロシージャ MySQL の使用

お役に立てれば!:)

于 2013-02-18T03:02:40.120 に答える