0

私は持っています:

  • string価値のあるAwww.facebook.com
  • allowed_domain値のある列facebook.com

ドメイン文字列(サブドメインあり)が列(サブドメインなし)と一致するかどうかを確認しようとしています。

SELECT * FROM MyTable
   WHERE 'www.facebook.com' REGEXP '^([a-zA-Z0-9]+\.)*' + allowed_domain + '$' 

文字列「www.facebook.com」はreferrer、私の実際のコードから抽出されています。

ここで私が実際に使用している正規表現を見ることができます

私の問題は、MySqlで正規表現が一致していないことです。どうしたの?

4

3 に答える 3

1

ここで解決策を見つけました: Using Columns in a RegExp in MySQL。次のように、単一の文字列オブジェクトを正規表現に送信する必要がありました。

REGEXP concat('^([a-zA-Z0-9]+\.)*', domain, '$')
于 2012-10-27T08:05:40.687 に答える
0

同様のクエリを試してみてください。

... WHERE domain like '%.facebook.com'

サブドメインのないfacebook.comのルールを追加することもできますが、それは機能するはずです。

于 2012-10-27T07:18:23.387 に答える
0

あなたが見つけた解決策は不正確です。その正規表現は、fakefacebook.com. これを試してください:

SELECT * FROM MyTable WHERE allowed_domain='www.facebook.com' OR 'www.facebook.com' LIKE concat('%.', allowed_domain)

Squid ACL 外部ヘルパーでこのクエリを使用していますが、魅力的に機能しています。

于 2014-09-30T17:14:11.347 に答える