• 締切済み

正規表現の使えるデータベースとSQL文の書き方が知りたい

正規表現の使えるデータベースとSQL文の書き方が知りたいのですが、 Access2003,MySQL5,PsotgreSQL8のうち、可能なDBはどれでしょうか? たとえば、以下のように128バイト固定長のアルファベットの大文字小文字と数字のレコードがあり、 ^ABで検索すると、(2),(3)のレコードを抽出するSQLの書き方が知りたいのですが、可能でしょうか? AAACCC...(1) ABBCCC...(2) ABCCCC...(3) できればアクセス2003でできるとうれしいですが、可能なDBをご存じの方教えて下さい。 また、やはり速度的に非常に遅いものになるでしょうか?

みんなの回答

  • umota
  • ベストアンサー率46% (150/324)
回答No.2

しまった~っ こいつは礼も補足も書かない放置人だった。

  • umota
  • ベストアンサー率46% (150/324)
回答No.1

PostgreSQL では可能です。他は知りません。 SELECT * FROM table WHERE column~'^AB' のように記述します。(イコールの換わりにチルダを使います)

関連するQ&A

  • 正規表現でSQLのエスケープ

    C# 2.0 & SQLServer2000 でプログラムを作成しています。 通常のADOではなく、サードパーティーのDBコンポーネントを使ってDB周りはやっているのですが、その際に SQL 文は自分でエスケープしてやる必要があることに後から気付き、正規表現でSQL文をまとめてエスケープすることはできないかと考えています。 正規表現を使って実現したい事は以下です。 ・文字列中の ' (シングルクォート)を '' (シングルクォート2つ)に置換 ・ただし、 where field = 'xxxx' のように文字列を間に入れている場合の ' は置換しない WEBなどで調べても見つかりませんでした。どなたか正規表現に強い方、教えてください。

  • 正規表現

    正規表現を使って、数字、大文字小文字のアルファベット、「”」(ダブルコーテーション)、「、」コンマ以外の記号を、表せる正規表現方法はどうなるのでしょうか? 見当がつきません。 どなたかお願いします。

    • ベストアンサー
    • Java
  • 正規表現について

    PHP5.2.4を使用しています。 1文字以上のアルファベットと数字の組み合わせは許可(含めて) かつ 「ab」は許可しない(含めない) という正規表現はどのように記述すれば良いのでしょうか?(「01ab」「abc」は許可、「ab」は許可しない) 一応自分なりに考えてみたのですが、 $str = "abc"; if (preg_match("/[^(ab)][a-z0-9]+/", $str)) { print "match<br>\n"; } やはり駄目でした・・・

    • ベストアンサー
    • PHP
  • 正規表現

    お世話になります。正規表現の質問です。 \w に当たる文字とハイフンに合致するが、少なくとも一文字はアルファベット(a-z)またはハイフン(-)が含まれていなければならない(つまり、数字だけの文字列は合致しない) という正規表現はどうあらわせばよいでしょうか。 以上、よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現

    数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • SQL文で

    SQL2000serverで 異なる2つのデーターベースの中にある 別のテーブルの情報を SQL文を使って、抽出する事は出来るのでしょうか? たとえば下記のように「DB-A」「DB-B」と言った 二つのDBの中のそれぞれのテーブルのIDフィールドで リレーションを取ってDB-AのTablA1のFldAの 値(AA)からDB-BのTablB1のFldBの値(あ)を 抽出することはSQL文で可能なのでしょうか? DB-A DB-B TablA1 TableB1 ID FldA ID FldB 1 AA 1 あ 2 BB       2 い 3 CC 3 う 4 DD 4 え

  • 正規表現を使って行数毎の数字を抽出したいです。

    正規表現を使って行数毎の数字を抽出したいです。 -ウェブに表示されている文字列--- 101 100 99 98 ...... -------------------- この表示が1行につき3文字固定であれば以下でできました。 (/(\d{3})/, '<a href="foo/\1">\1</a><br/>')

  • 秀丸正規表現で数字を含まない行だけ抽出する方法

    秀丸正規表現で、 半角数字を含まない行だけ抽出する 方法はありますか? abc 抽出 数字  抽出 あ01 抽出しない a0c 抽出しない 111 抽出しない 2ab 抽出しない お分かりになる方がいらっしゃったら、アドバイスいただけると嬉しいです。 よろしくお願いいたします。

  • 正規表現で置換

    MySQLの置換関数では正規表現は使えないのでしょうか? 以下のようなSQLを実行させたいのですが、「12345678」の部分はランダムで毎回変わります(8桁は固定)。 UPDATE テーブル SET カラム = REPLACE(カラム, 'ttp://hohe.jp/123/45678', 'ttp://uheuhe.jp'); php等は使用せずmysqlだけで処理させたいと考えています。 宜しく御願いします。

  • 正規表現の使い方

    仕事で悩んでいます。 私の仕事はログファイルから、月々何件アクセスしたか調べる仕事です。 コマンドプロンプトでsort、grep、wcなど色々使い方を勉強していくうち、 今度は難しいのが出てきて悩んでいます。 そのまま書き移したら、皆さんは分からないし、会社のプライバシーに関わるので、簡単に書きます。 例えば、 ABC10 ABC10 ZP-22 AB-V5 AA10 PP122 と数字があり、 頭文字のAの部分を集めたいところに私は grep -e "資料番号の頭文字" 入力ファイル > 出力ファイル とコマンドプロンプトで打ち、下記の通りになりました。 AB-V5 AA10 AB-V5 AA10 だが、問題は途中にあるAB-V5は仲間ではないので、 それを省きたいのです。 上記の例は数少ないので手入力でもできますが、実際は1万以上もあるので、 手入力はできません。 上司に聞いたところ、 A[0-9].* の正規表現を使えと言われましたが、 全くやり方わかりません。 正規表現について勉強したのですが、全く理解ができず、仕事が遅れています。 皆さんの知恵を借りたいと思います。 よろしくお願いします。