想象一下,有包含用户点击的点击表。现在我想选择每个社交网络的总点击次数:SELECT语句中匹配的REGEXP模式
UPD: refererHost列包含任何referer主机,不仅包含社交网络主机。
SELECT
c.refererHost as referer,
COUNT(c.id) as clicks
FROM clicks c
WHERE c.referrerHost REGEXP 'facebook|google|linkedin'
GROUP BY referer
ORDER BY clicks desc
但问题是,引荐字段将包含域名像www.facebook.com,我需要选择匹配正则表达式的值(例如“实”)。是否可以用MySQL来做到这一点?
我不认为这是可能的。根据文档“如果expr匹配pat返回1,否则返回0”。 https://dev.mysql.com/doc/refman/5.5/en/regexp.html –
你可以使用REGEX_SUBSTR。 SELECT REGEXP_SUBSTR(“http://theDomain/www.facebook.de”,'facebook | google | linkedin');它只返回名字。 –
@BerndBuffen这是一个Oracle SQL函数..我不认为有一个MySQL的等价物,恐怕 – Arth