• ベストアンサー

アクセルでのクエリ

アクセスで以下のようなクエリを作ったのですが、 もっと簡略化できないでしょうか? SELECT * FROM testTable WHERE colA like "*あ*" OR colA like "*い*" OR colB like "*あ*" OR colB like "*い*" OR colC like "*あ*" OR colC like "*い*" ;

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

質問にある条件なら SELECT * FROM testTable WHERE (colA & colB & colC) like "*[あい]*" ;

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

例と同じように1文字なら SELECT * FROM testTable WHERE colA like "*[あい]*" OR colB like "*[あい*]" OR colC like "*[あい]*" でできますが。 実は Like "*ABC*" ということなら、それ以上は無理です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【SQL文】 where (colA & colB) in ((1 & 1), (2 & 2)) とは?

    VB6のプログラムを読んでいたら、ACCESSのMDBにSQL文を 投げる際に以下のような記述がありました。 ------------------------------------------------------ select * from tableA where (colA & colB) in ((1 & 1), (2 & 2)) ------------------------------------------------------ これはどういったことを表しているのでしょうか? 雰囲気的には (colA, colB) の組み合わせが (1, 1) か (2, 2) というようなことを表しているのかなと思うのですが はっきりとわからなかったため質問させていただきました。 また、これはOracle等の他のDBでも使用できる構文 なのでしょうか? ご存知の方がいらっしゃいましたら教えていただけたらと 思います。

  • SQLite3(PDO)でクエリー件数を取得したい

    SQLite3をPHPで使用しています。 ネットでいろいろ見たのですがわかりませんでしたのでこちらで質問させて頂きました。 SELECTで条件に合うidを抽出した場合にその行数を取得したいのですが、どのようにするとスマートに取得できるのでしょうか? スマートにというのは「データベースへのアクセスが一度で済むような」という意味です。抽出データの取得と件数の取得が一度のアクセスで可能なのでしょうか? $pdo = new PDO(sqlite:test.db); $query = $pdo->prepare('SELECT id FROM testTable WHERE id > 0 AND id < 10'); $query->execute(); 私が現在行なっているのは、データ抽出は上記のコードでやって、件数の取得は以下のようにしています。 $query = $pdo->prepare('SELECT count(*) FROM testTable WHERE id > 0 AND id < 10'); $query->execute(); $num = $query->fetch(PDO::FETCH_NUM); echo $num[0]; ネットで調べてもMySQLやPostgreSQLのことしか載っていなく、なかなかSQLite3での取得方法がわかりません。 お手数ですが教えて頂ければと思います。よろしくお願い致します。

  • WHERE句の内部でWHEN

    いつもお世話になっております。 初歩的な質問で申し訳ありません。 SELECT X.COLA, X.COLB, Y.COLC FROM TABLE_X X, TABLE_Y Y WHERE X.COLA = Y.COLC AND WHEN X.COLB = "HOGEHOGE" THEN X.COLA > 100 ELSE X.COLA < 99; 以上のように COLBがある条件を満たす場合のみ、 WHERE句の条件を変更したいのですが、 上記の記述でよろしいのでしょうか? 現在手元にテストをできる環境が無い為、 初心者なりに机上で考えたのですが、 どなたかご教授いただければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • ユニオンクエリでWHERE句を使うのは不可能でしょうか?

    アクセス2003です。 (select * from Q1) UNION ALL (select * from Q2) UNION ALL (select * from Q3); WHERE (((番号) Like "*001")); としても 「SQLステートメントの後に文字が見つかりました。」 となってしまいます。 「番号」と言うフィールドは Q1、Q2、Q3どのクエリにもあり (select * from Q1) UNION ALL (select * from Q2) UNION ALL (select * from Q3); のみなら正常に動作します。 作成したユニオンクエリで「フィルタの対象」で「*001」と入力したらちゃんと思い通りに動作します。 ユニオンクエリで条件抽出は不可能でしょうか? よろしくお願いします。

  • AccessのクエリでvbLfのみ抽出するには

    Access2010のクエリー(SQL)で vbLfかvbCrLfが含まれているレコードを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(10) & "*"; vbLfが含まれているレコードは抽出せず、 vbCrLfが含まれているレコードだけを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(13) & Chr(10) & "*"; でよいと思いますが、 vbCrLfが含まれているレコードは抽出せず、 vbLfが含まれているレコードだけを抽出するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。

  • クエリーの作り方

    SQLから、Postgres上のデータを参照しています。 まず、この形式で取り出そうとしています。 $query = 'select * from comment where oya = ■■'; この、■■のところには整数が入りますが、 事前にアレイに入れてある数字「 $DB_data[0] 」から、 whileでぐるぐる回して検索したいのですが、 こうすると、エラーになります。 $query = 'select * from comment where oya = $DB_data[0]'; エラー Query failed: ERROR: syntax error at or near "$" at character 何か良い手はないでしょうか? 別のテーブルの数値を持ってきて、$を使わずに検索できれば・・ こういうのも可能でしょうか・・?

    • ベストアンサー
    • PHP
  • SQLクエリ

    以下のようなAccessのテーブルがあったとします。   time  -------------- (1) 200207050545 (2) 200207050546 (3) 200207050733 そこで、以下のようなクエリを実行したとします。 SELECT time from table WHERE time <= '200207050546' 当然、得られる結果は(1)(2)です。 しかし、条件を『time <= 'a'』にすると、(1)(2)(3)の結果が得られてしまいます。 条件が『time <= 'a'』のときはレコードなしにしたいのですが、 どうすればよいでしょうか?

  • JavaScriptからAccess2003へのクエリが上手くいかない

    Access2003での質問です。 JavaScriptからAccessのDBに接続しているのですが、 プログラム中からのクエリだと結果が得られない(BOFがTrueになっている模様) ですが、そのまま同じクエリをAccessを起動し、クエリを行うと正しい結果が返ってきます。 ちなみに、プログラムの中では他にいくつも同じようなクエリを飛ばしており、成功しています。 クエリを実行させる場所(他のクエリが成功している場所)を変えてもBOFとなります。 この症状の原因を教えていただきたいです、よろしくお願いします。 クエリ var sql = "select * from Table1 where Field1 like 'abc*'" var rcdSet = database.Execute(sql) →rcdSet(0)を参照しようとすると、BOFとなります。

  • 同じクエリ内で作成した項目のエイリアスを、別の列を作成する要素として参照したい

    お世話になります。 ACCESS2003のクエリからSQL2005のストアドへ移行作業をしております。 アクセスで同じクエリ内で作成した項目のエイリアスを、別の列を作成する要素として利用できたのですが、ストアドではできないのでしょうか? 記述の方法が違うのか、全くできないのか、他に何かよい方法があればご教示ください。 例> MyCOLaをMyCOLbで利用したいのです。 INSERT INTO TABLE1(COLa,COLb) select 'convert(money,650) as MyCOLa,convert(money,[MyCOLa]*1.05) as MyCOLb

  • CakePHPでquery()を使うときについて

    CakePHP バージョン1.3.7です。 CakePHPでqueryを使ってSQL文を書くときなんですが 公式サイトに以下のように App::import('Sanitize'); $sql = "SELECT * FROM users WHERE id = $id"; $sql = Sanitize::clean($sql); サニタイズをしなさいとありますが、 上記の$idの部分がdate型で $sql = "SELECT * FROM users WHERE date = '2011-05-16'"; みたいなときシングルクオートがエスケープされてクエリが通らないのはどうやって解決すればいいんでしょうか?

    • ベストアンサー
    • PHP