SELECT
id,
url,
url REGEXP '/([A-Z0-9]{10})' as asin
FROM urls;
我正在尝试提取亚马逊网址的ASIN部分。
我的查询只返回1表示匹配,0表示不匹配。如何在不必在应用程序级别运行正则表达式的情况下使用mysql(DB级别)实际提取此内容?
答案 0 :(得分:-1)
MySQL的正则表达式可以找到行,但不能提取匹配的文本。
这可能适用于该示例:
SUBSTRING_INDEX(url, '/', -1)
示例:
mysql> SELECT SUBSTRING_INDEX('amazon.co.uk/gp/product/B00BE4HOIM', '/', -1);
+----------------------------------------------------------------+
| SUBSTRING_INDEX('amazon.co.uk/gp/product/B00BE4HOIM', '/', -1) |
+----------------------------------------------------------------+
| B00BE4HOIM |
+----------------------------------------------------------------+
此假定 ASIN之后没有任何。如果可能的话,那么第二步可能会剥夺那些东西。