2017-01-09 76 views
1

的具体数量对于这样一个表格中选取项目:包含给定字符(SQL)

visits url 
594  http://example.com/page1/stuff 
302  http://example.com/page2 
494  http://example.com 
202  http://example.com/page3/stuff/more 

我想选择只包含4个/字符的URL。

在python中,我会使用len(url.split('/')) == 5。这怎么能在SQL查询中完成?

+0

它们可以是连续的,以及在它们之间没有字符的另一序列?例如:'http://example.com ///' –

+0

当然 - 所以在你的例子中,我们会计数5 – AlexG

+5

'length(url)-len(replace(url,'/',''))= 4'? –

回答

1

这种搜索无法进行索引,因此无法对其进行优化。一种方式是使用一个正则表达式:

WHERE url REGEXP '^([^/]*/){4}[^/]*$' 

说明:接着/

  • (...){4} =正好是4

    • ^ =开始字符串的
    • [^/]*/ = 0或多个非/字符圆括号内的图案重复
    • [^/]* =非/字符
    • $ =串的端