Соответствие регулярного выражения кросс-таблицы MySQL - PullRequest
3 голосов
/ 03 июня 2010

У меня есть веб-приложение, и я работаю над движком, который анализирует рефералов.

Теперь у меня есть таблица с просмотрами страниц и ссылками, которая выглядит примерно так:

pv_id        referer
------------------------------------------------------------
5531854534   http://www.google.com/search?ie=UTF-8...
8161876343   http://google.cn/search?search=human+rights
8468434831   http://search.yahoo.com/search;_...

Вторая таблица содержит определения источников, такие как:

source       regex
------------------------------------------------------------
Google       ^https?:\/\/[^\/]*google\.([a-z]{2,4})(\/.*)?$
Yahoo        ^https?:\/\/[^\/]*yahoo\.com(\/.*)?$

Мне нужна третья таблица, созданная объединением этих двух:

pv_id        source
------------------------------------------------------------
5531854534   Google
8161876343   Google
8468434831   Yahoo

Как объединить эти таблицы с помощью регулярного выражения?

UPDATE:

Изменена последняя часть регулярного выражения с (\/.*|) на (\/.*)?.

Ответы [ 2 ]

3 голосов
/ 03 июня 2010

Попробуйте это:

select t1.pv_id, t2.source
from table1 t1
  inner join table2 t2 on (t1.referer regexp t2.regex)
1 голос
/ 03 июня 2010

MySQL:

SELECT a.pv_id, b.source 
FROM a, b
WHERE a.referer REGEXP b.regex
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...