首页 > 解决方案 > 从 mariadb 中的混合字符串中提取 UUID

问题描述

我有一个 mariadb 表如下:

在此处输入图像描述

这是行看起来如何的示例

|  4 | test/1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd/kuva.jpeg                             | {"Records":

中的内容Records已被省略以保持简短和简单。当我像这样发出 SQL select 时select key_name from minio_images where id=4;,它会返回像这样的正常输出

+-----------------------------------------------------+
| key_name                                            |
+-----------------------------------------------------+
| test/1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd/kuva.jpeg |
+-----------------------------------------------------+
1 row in set (0.09 sec)

我的问题是如何使用 select 以便它只返回UUIDinkey_name而不是整个字符串。例如,1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd而不是test/1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd/kuva.jpeg?我真的很感激任何形式的帮助。

标签: parsingmariadb

解决方案


幸运的是,我发现了一个类似的帖子@extract substring from mysql column using regex,我尝试了一个建议的解决方案,通过发出SELECT我猜的语句,从基于正则表达式的列中返回值。就我而言,要提取的正则表达式UUID'[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}',语句就像

SELECT REGEXP_SUBSTR(key_name, '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}')
FROM minio_images;

这给了我一个输出,就像我需要的一样

+--------------------------------------------------------------------------------------------------------+
| REGEXP_SUBSTR(key_name, '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}') |
+--------------------------------------------------------------------------------------------------------+                                                                                               


| 1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd                                                               |
| 1edd460e-b19a-4b16-a460-d433eac60833                                                                   |
| 281a890f-0b8b-4693-9227-fc8c57d6045e                                                                   |
| 37a14ddb-eeda-41f2-a2b6-ec0bad34aaed                                                                   |
| 37d4f3d2-2282-4b9f-8e1e-f8a26570c5b4                                                                       |
| 387da0c1-1caf-4394-a023-92e7eec19b66                                                                   |
| 49a29478-4799-4a8b-8757-42060020fc99                                                                   |
| 9214e1f0-77e3-435a-a329-d1829a973903                                                                   |
| ae67c69a-a2cf-4c21-88ca-bd17e254bc4c                                                                   |
| b6491e64-34a6-4aa3-a54e-200b1cd946fe                                                                   |
| c0f6864b-2ab8-41fa-a1c2-6b974a1895c1                                                                   |
| cfd61927-557e-47d2-aeb9-229ec1aba5b4                                                                   |
| df566110-c2a0-4d9c-8389-fcbaf6c8bb30                                                                   |
+-------------------------------------------------------------------------------------   -------------------+
16 rows in set (0.03 sec)

推荐阅读