• ベストアンサー

where以下の条件文

TNYの回答

  • TNY
  • ベストアンサー率42% (69/163)
回答No.1

$sql に追加するところすべてにいえますが、 「$sql .= "itu_id = $itu_id ";」の$itu_id や $dou_id を 「$sql .= "itu_id = '".$itu_id."' ";」 としてみてはいかがでしょうか。 (シングルクォーテーションで囲む)

naokisijp
質問者

お礼

ご回答ありがとうございます。 ご指摘のとおり試してみましたが変りませんでした。 しかしクォーテーションは私が苦手としているところなので コーディングにミスがあるのかもしれません。 もう少し試行錯誤してみます。

関連するQ&A

  • Access where条件式について

    Access where条件式について 最近マクロでwhere条件式による抽出を知った初心者です。 現在単ページ表示のフォームから、表示されているID番号のレポートを表示させたいと考えているのですが、そのレポートをレコードソースになるマスターテーブルから [Form]![ID]=[マスターテーブル]![ID] とすると該当するレポートが表示されるのですが、 レポートのレコードソースをクエリに変更 [Form]![ID]=[マスターテーブルクエリ]![ID] に変更するとすべて空で表示されてしまいます。 クエリを使用することは出来ないのでしょうか? データベースの基礎があやふやなこと、where条件を最近知ったことなどから、検討違いなことを質問していたら申し訳ありません。 また質問に対して、足りない情報があればご指摘願います。 OS Windows XP Access 2003

  • SQL SERVER の Where条件

    初めて質問させて頂きます。 VB内でSQL文を作成し、それをSqlServerに送り実行させているのですが、 VB内でSQL文を作成する時に、Whereの条件を入れたり入れなかったりします。 その時、都度、WhereをつけるのかAndをつけるのか判断してプログラムを書くのが億劫なので Dim SqlString as string SqlString = "SELECT * FROM テーブルA WHERE 0 = 0" IF txtA.text <> "" then SqlString = SqlString & " AND 項目A = " & txtA.text END IF IF txtB.text <> "" then SqlString = SqlString & " AND 項目B = " & txtB.text END IF こういうズボラをしてるのですが、これってSqlの実行スピードに影響したりしますか? 思うようにインデックス使ってくれなかったりしますか? ご存知の方がご教授下さい。 よろしくお願いします。

  • MySQLでWHERE条件が効かない

    環境: PHP 5.0.3 MySQL 4.0.14b(Win)(←古いこと承知) IIS 5.1 『いますぐ導入!PHP+MySQLで作る最速Webシステム』という入門本のサンプル プログラムを使って勉強していますが、SQLのWHERE文が効かず全レコードが 出てきてしまいます(同書は PHP 4.3.1 を前提に書かれます) 単純に、書籍のISBN、タイトル、価格などが収められたサンプルデータベースで、 こういう↓ search_form.htm から sample.php にPOSTしてます。 書籍タイトル<INPUT size="44" type="text" name="title" maxlength="100"> を含む sample.php は、上記などに入力された検索文字列でWHERE条件で絞込みます。 一部抜粋しますと: | //SQL文を組み立てます(フォームの値をWhereに指定) | $sql = "select * from bookinfo | where (isbn like '$isbn%') and | (title like '%$title%')"; | //priceは指定されているときだけSQL文に追加 | if (strlen($price) > 0) { | $sql .= " and (price <= $price)"; | } | $sql .= " order by isbn"; | | //SQL文の確認用(デバッグ時のみ使用します) | print $sql; どの検索条件を入力しても全レコードが出力してしまうので、上記抜粋の 最後の行のコメントを有効にしたところ、こういうSQL文を吐き出しており、 入力した文字列が有効になっていません。 select * from bookinfo where (isbn like '%') and (title like '%%') order by isbn 対応方法につき、ちょっと見当がつかないのですが、何かお心当たりが ありましたらご教示いただけますと幸いです。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PLSQLで条件によりSQLを動的に変えたい

    例えば、あらかじめテーブルなどを読み、その内容により、 SQLの文そのものを非常に変えたいとします。 SQLその1 select * from TABLEA where A = 1 SQLその2 select * from TABLEA where A = 1 and B = 2 and C = 3 and D = 4 上記は例ですが、内容などにより複雑な条件式を追加したい。 ベースのSQLは非常に長い為、 例えば 完全に切り分けるのでは無く、共通の部分は共通ソースとしたい。 また、プリプロセッサみたいに、条件式が追加された場合 あたかも、初めからそのSQLのみがあり、他の制御文などをSQL文自身には追加したくない。 動的SQLでは無い方法でそのような事が可能でしょうか? ----- イメージ ----- select * from TABLEA where A = 1 IF (条件がある時のみ) B = 2 and C = 3 and D = 4 END IF; ------------------- 実際には、SQL文の中にPLSQLの制御文をうまく追加できない。

  • SQL文 Where句の複数検索

    先日教えて頂いたところから自分なりに複数検索をする方法を考えて書いてみたのですが、これだとテキストボックスに複数検索条件を入力するとSQLの構文エラーになってしまいうまくいきません。 先日教えて頂いた方、見ていたらまたアドバイスを頂けたら助かります。 Private Sub コマンド11_Click() '変数の設定 Dim myDB As DAO.Database Dim myRS As Recordset Dim strCnd As String Dim strWhr As String Dim strSQL As String '定数の宣言 Const conSQL As String = "Select * From T_障害票マスタ" ' テキストボックスの値を確認 ' Nz関数を使用して、テキストとして扱える空文字に変換 strCnd = Nz(Me!テキスト1, "") '←◆コントロールの値を参照◆ '「テキスト1」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & " " & strWhi & " 起票日 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト3, "") '←◆コントロールの値を参照◆ '「テキスト3」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & " And 依頼者 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト5, "") '←◆コントロールの値を参照◆ '「テキスト5」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & " And 部署 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト7, "") '←◆コントロールの値を参照◆ '「テキスト7」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & "And 社員番号 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト9, "") '←◆コントロールの値を参照◆ '「テキスト9」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & "And 対象システム Like '*" & strCnd & "*'" End If 'SQL文を作成 strSQL = conSQL & vbCrLf & strWhr '自身のレコードソースに設定 Me.RecordSource = strSQL '検索結果の表示 DoCmd.OpenForm ("データ修正画面") Forms("データ修正画面").RecordSource = strSQL

  • 不要なwhere文が混じった重複レコードのカウント

    下記のSQL文があります。 tableA内で、tableA.id(A.id)は重複があります。 tableA内でのtableA.id(A.id)の重複レコード数をcount関数などでSELECTしたいのですが、 下記SQL文からどのように付け加えたらいいのか、お分かりの方いますでしょうか? SELECT A.id as id, A.xxx as xx, A.yyy as yy, B.zzz as zz FROM tableA A, tableB B WHERE A.id = B.id AND A.xxx = x AND A.yyy = y なお、「A.yyy = y」という条件は、tableA.idの重複レコード数をカウントする上で必要な条件なのですが、 「A.xxx = x」という条件は、tableA.idの重複レコード数をカウントする上で、不要な条件です。 以上、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • VBA ACCESS SQL WHERE句の数値型の変数の記述の仕方

    いつもお世話になっております。 i = Me!ID ’数値型です sql = "DELETE FROM T_DELETE_ID WHERE DELETE_ID = ""i"";" CurrentDb.Execute (sql) としたところ、SQLのWHERE句の条件の指定の仕方が どうもうまくいきません。 sql = "DELETE FROM T_DELETE_ID WHERE DELETE_ID = 101;" CurrentDb.Execute (sql) のようにWHERE句の値を数字にしたら実行できます。 この場合はどのようにしたらよろしいでしょうか わかる方いらっしゃいましたら、。ご教示の程よろしくお願いいたします。

  • 文字例の比較について WHERE句

    文字例の比較について、教えてください。 DELETE_FLAGという項目には、文字列の"1"、もしくはNULLが入っています。 セレクト文でDELETE_FLAGが"1"以外のものを抽出したいのですが、うまくいきません。 以下のSQL文を実行した際に、結果として5件ヒットしてほしいのですが、なぜか0件となってしまいます。 select count(product_id) from hpk_atoz_list_view where delete_flag != '1'; 原因わかりますでしょうか? よろしくお願いいたします。 ============================================================================ SQL> select delete_flag, product_id from product_list_view; DELETE_FLAG product_ID ---------------------------------   0002 1 1003   0002 1 1003   0002 1 1003   0002   0002 8行が選択されました。 SQL> SQL> select count(product_id) from product_list_view where delete_flag != '1'; COUNT(product_id) ---------- 0 SQL> SQL> select count(product_id) from product_list_view where delete_flag = '1'; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is not null; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is null; COUNT(product_id) ---------- 5 SQL> =====以上=====

  • 複数フィールドの条件について

    SQL文について教えてください。 oracle,mysqlでは、下記の条件分 where (fieldA,fieldB) in (select fieldA,fieldB from TABLE_NAME) と言った条件を記載可能なのですが、SQLServer ではエラーになってしまいます。 違った構文があるのでしょうか?よろしくお願いします。 具体的にやっているSQLは update TABLE_NAME set FIELD_NAME='1' where (FIELDA,FIELDB) in (select FIELDA,FIELDB from TABLE_NAME2 where FIELDC='1')

  • where notにつて

    where文で条件を指定して検索したいのですが、たとえば、idが1、2、30、40以外を検索するにはどうしたらよいでしょうか? 初歩的な質問で申し訳ありません。 回答よろしくお願いします。