簡體   English   中英

帶有多個分隔符的SUBSTRING_INDEX

[英]SUBSTRING_INDEX with multiple delimiters

我試圖刪除放入我的數據庫的URL中的一些信息。 我有這個查詢,我正在使用:

Select substring_index(refurl,'?gclid',1) as refurl, Count(*)
from leads
group by substring_index(refurl,'?gclid',1)

但對於分隔符,我真的需要取消這兩個:

?gclid or &gclid 

這是通過在子字符串中執行OR語句還是完全不同來實現這一點嗎?

使用IF

SELECT SUBSTRING_INDEX(refurl, IF(LOCATE('?gclid', refurl), '?gclid', '&gclid'), 1) AS refurl, ...

為了以防萬一,我只需要在一定數量之前對字符串進行分組,例如:

hcu
----------------------
AQP Casma 01 HCU 200
AQP Casma 10 HCU 1500
AQP Casma 11 HCU 1500
Cusco 1 HCU 1500
Cusco 2 HCU 200-3
Cusco 3 HCU 200-1
Cusco 12 HCU 200

只獲得這個:

AQP Casma
Cusco

我無法使用IF因為多個分隔符,所以我使用的查詢是:

SELECT 
 CASE 
    WHEN LOCATE(' 0',hcu )>0 THEN SUBSTRING_INDEX(hcu, '0', 1)
    WHEN LOCATE(' 1',hcu )>0 THEN SUBSTRING_INDEX(hcu, '1', 1)  
END hub  
FROM npi_hist 
GROUP BY hub 

結果是預期的...我不知道為什么正確分組所有庫斯科寄存器,但它正在我需要的工作。

希望它可以幫助。

再見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM