簡體   English   中英

SQL在字段中間獲取字符

[英]SQL to get characters in the middle of a field

在我的表中,我有一個實際上是數組的字段,其中所有條目的結構都為{“ key1”:value1,“ key2”:value2 ...}

我只需要根據其中一個鍵“ email”進行一些分析,但是由於長度是可變的,因此無法弄清楚如何僅返回查詢中的電子郵件地址。 子字符串的開頭可以預見地在“電子郵件”之后(包括引號在內),結尾可以預見地是“ .com”(引號不包括在內)。

現在我的查詢看起來像這樣:

select substring(`fieldname`, locate('"email"', `fieldname`) + 9, 20) 
as 'Customer Email' 
from table 
where `fieldname` in ('email_processed', 'email_delivered')

因此,我在地址開頭之后得到了20個字符,但是我不知道在電子郵件后綴的末尾使它動態化。

如何隔離該字段中的電子郵件地址?

通過使用后續鍵的位置來定義我的端點(加上一些調整)來得到它:

select substring(`fieldname`, locate("key1", `fieldname`) + 9, 
locate("key2", `fieldname`) - locate("key1", `fieldname`) - 12) 
as 'Customer Email'` 
from table 

暫無
暫無

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

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