Search for text between delimiters in MySQL

前端 未结 11 2408
情歌与酒
情歌与酒 2021-02-08 03:39

I am trying to extract a certain part of a column that is between delimiters.

e.g. find foo in the following

test \'esf :foo: bar

So in the above I\'d wa

11条回答
  •  死守一世寂寞
    2021-02-08 04:05

    This is what I am extracting from (mainly colon ':' as delimiter but some exceptions), as column theline255 in table loaddata255:

    23856.409:0023:trace:message:SPY_EnterMessage (0x2003a) L"{#32769}"      [0081] WM_NCCREATE sent from self wp=00000000 lp=0023f0b0
    

    This is the MySql code (It quickly did what I want, and is straight forward):

    select 
    time('2000-01-01 00:00:00' + interval substring_index(theline255, '.', 1) second) as hhmmss
    , substring_index(substring_index(theline255, ':', 1), '.', -1) as logMilli
    , substring_index(substring_index(theline255, ':', 2), ':', -1) as logTid
    , substring_index(substring_index(theline255, ':', 3), ':', -1) as logType
    , substring_index(substring_index(theline255, ':', 4), ':', -1) as logArea
    , substring_index(substring_index(theline255, ' ', 1), ':', -1) as logFunction
    , substring(theline255, length(substring_index(theline255, ' ', 1)) + 2) as logText
    from loaddata255
    

    and this is the result:

    # LogTime, LogTimeMilli, LogTid, LogType, LogArea, LogFunction, LogText
    '06:37:36', '409', '0023', 'trace', 'message', 'SPY_EnterMessage', '(0x2003a) L\"{#32769}\"      [0081] WM_NCCREATE sent from self wp=00000000 lp=0023f0b0'
    

提交回复
热议问题