【发布时间】:2020-09-10 08:26:25
【问题描述】:
我有一个需要缩短的 URL。我有两种格式的网址,第一种是/item/10/0100-,它首先停止在-,第二种是/item/12/0100-CAK,它需要在-之后多3个字符。
下面是例子,
/item/10/0100-NAU1X010-10-A032 need to be /item/10/0100-
/item/2/0888-ADBACS11101-2-A048 need to be /item/2/0888-
/item/12/0100-CAK101827812018101-12-A034 need to be /item/12/0100-CAK
/item/3/0110-MSS0016-T03-3-A034 need to be /item/3/0110-MSS
我已经尝试过这个查询
CASE
WHEN Page LIKE "/item/10%" OR Page LIKE "/item/2/%" THEN CONCAT(SUBSTRING_INDEX(SUBSTR(Page, LOCATE('/', Page)+1), '-', 1), "-")
WHEN Page LIKE "/item/12%" OR Page LIKE "/item/3/%" THEN SUBSTRING_INDEX(SUBSTR(Page, LOCATE('/', Page)+1), '-', 1) + 4
ELSE Page
END
但这并没有给我正确的结果。这似乎很简单,但我真的无法克服它。请帮我解决这个问题,谢谢。
【问题讨论】:
-
@Akina 第二种格式呢?这3个字符不仅是
CAK -
@Akina 为第一种格式,
/item/10/0100-NAU1X010-10-A032需要为/item/10/0100-,/item/2/0888-ADBACS11101-2-A048需要为/item/2/0888-。对于第二种格式,/item/12/0100-CAK101827812018101-12-A034需要为/item/12/0100-CAK,/item/3/0110-MSS0016-T03-3-A034需要为/item/3/0110-MSS -
这两种格式实际上只是一种格式。那么如何判断每个 URL 应用哪种格式呢?
-
@forpas 除以
/item/之后的数字。请看看我编辑的问题。