sql >> データベース >  >> RDS >> Mysql

ここで、1=1ステートメント

    これは通常、人々がSQLステートメントを作成するときです。

    and value = "Toyota"を追加すると 前に状態があるのか​​、それともどこにあるのかを心配する必要はありません。オプティマイザーはそれを無視する必要があります

    魔法はなく、実用的です

    コード例:

    commandText = "select * from car_table where 1=1";
    
    if (modelYear <> 0)     commandText += " and year="+modelYear
    if (manufacturer <> "") commandText += " and value="+QuotedStr(manufacturer)
    if (color <> "")        commandText += " and color="+QuotedStr(color)
    if (california)         commandText += " and hasCatalytic=1"
    

    そうしないと、複雑なロジックのセットが必要になります。

    commandText = "select * from car_table"
    whereClause = "";
    if (modelYear <> 0)
    {
       if (whereClause <> "") 
          whereClause = whereClause + " and ";
       commandText += "year="+modelYear;
    }
    if (manufacturer <> "")
    {    
       if (whereClause <> "") 
          whereClause = whereClause + " and ";
       commandText += "value="+QuotedStr(manufacturer)
    }
    if (color <> "")
    {
       if (whereClause <> "") 
          whereClause = whereClause + " and ";
       commandText += "color="+QuotedStr(color)
    }
    if (california)
    {
       if (whereClause <> "") 
          whereClause = whereClause + " and ";
       commandText += "hasCatalytic=1"
    }
    
    if (whereClause <> "")
       commandText = commandText + "WHERE "+whereClause;
    


    1. Integrated Security=TrueとIntegratedSecurity=SSPIの違いは何ですか?

    2. 名前がJPAの予約語であるエンティティフィールドをマップする方法

    3. MySQL-時間を合計する方法は?

    4. PL/SQLのifステートメント条件のスカラーサブクエリ