parsing - 从 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 以便它只返回UUID
inkey_name
而不是整个字符串。例如,1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd
而不是test/1ecb5e71-9105-4a0c-8fa1-7fc8d5e970bd/kuva.jpeg
?我真的很感激任何形式的帮助。
解决方案
幸运的是,我发现了一个类似的帖子@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)
推荐阅读
- python - 从字符串列表中的每个项目中提取字符串的一部分(Python)
- html - 让文本跨越图像
- node.js - 错误:找不到模块“neo4j-driver/types/v1”
- sql - SQL(DB2)使用 Timestampdiff 和 Cast 以小时为单位的两个日期之间的差异
- java - 需要调用一个数组并在不同的类中打印它
- powershell - 尝试使用 Powershell 从 csv 导入信息,但不幸的是有些结果出错了
- email - PHPMailer可以为每个收件人添加不同的问候语吗
- javascript - jquery 如何写 if (window.width() < 1200 && after window.resize() window.width() > 1200){}
- c# - 翻转绘制文本/字符串的 GraphicsPath
- javascript - asp mvc 动画删除表格行