掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SQLの検索ついて (ID:111874)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
例えば、 SELECT * FROM テーブル WHERE 1=0 だと、0件のレコードを返す事になりますし、 SELECT * FROM テーブル WHERE 1=1 なら、全レコードが返される事になりますよね。 (1=0は常にFalse、1=1は常にTrueですから) > 1=1とはどういう意味があるのでしょうか? WHERE文の最初に指定する『必須条件』を意味しています。 例えば、「会社コードは必ずWHERE文に含める」という場合は、 SQL = SQL & " WHERE 1=1" ではなく、 SQL = SQL & " WHERE COMPANY=" & CompanyCode のような条件でも良いです。 必須条件を最初に持ってきた理由は、「省略可能な条件」の追加を、 If 条件指定時 Then SQL = SQL & " AND 列=" & 値 End If の3行で済ませるためです。 もし、必須指定の条件が先頭に含まれていないとしたら、 最初の条件だけは、『 AND 』演算子をSQL中に含ませる事ができないので、 コードが少々煩雑になってしまいます。 Dim hasCondition As Boolean '条件を1つでも指定していればTrue hasCondition = False SQL = "SELECT 〜 FROM 〜" : : If コンボ3の選択時 Then If hasCondition Then SQL = SQL & " AND 列3=" & コンボ3の値 Else hasCondition = True SQL = SQL & " WHERE 列3=" & コンボ3の値 End If End If If コンボ4の選択時 Then If hasCondition Then SQL = SQL & " AND 列4=" & コンボ4の値 Else hasCondition = True SQL = SQL & " WHERE 列4=" & コンボ4の値 End If End If : : ………まぁ他にも、書き方は何通りもあるでしょうけれどね。(^_^;)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.