2016-09-09 6 views
-3

したがって、たとえば 'foo'という単語が含まれているURLを見つけなければなりません。私はSELECT * FROM table WHERE url = regexのような正規表現でこれをやりたいURLはhttps//... OR http://....で、URLには例えばfooという単語が必要です。私が実際に望むのは、fooがホスト名かパスにあるかどうかをチェックする正規表現です。手伝ってくれてありがとう!Sql select url regex

EDIT:

LIKE '%foo%'が私のテーブルの上に非常に遅いので、私は正規表現で速く代替を見つけたいです。

+1

質問にテーブル構造を追加します。 – chris85

+0

'id'' url' 'その他重要でない情報' 'img' –

+1

これは構造体ではなく列です。列の型とインデックスを追加します。また、非常に遅い、秒、分などを定義する – chris85

答えて

0

LIKEには%ワイルドカード演算子を使用してください。

SELECT * FROM table WHERE url LIKE '%foo%'

+0

私は既にして、私のテーブルの次元については、クエリを実行するために2〜3分かかります... –

+2

それは元の投稿に含まれている情報の信じられないほど有用な部分です。あなたは、あなたの質問が述べるように、 "foo"を含むURLを取得する方法を探しているわけではなく、あなたはより速い代替手段を探しています。要点は、SQLの文字列データに対してワイルドカード・マッチを行うための非常に効率的な方法がないことです。テーブルに 'FULLTEXT INDEX'があることを確認してください。一般的に言えば、フルテーブルスキャンはMySQLでは威嚇されています。 – Santi