Re: [SQL ] 從一長串文字中select出IP

看板Database作者 (愚零鬥武多)時間13年前 (2013/02/15 10:53), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《t0336470 (GniN)》之銘言: : 資料庫:MySQL : 我有一個資料庫紀錄系統的log訊息, : 我希望把這些訊息中含有IP的資料挑出來, : 並且把IP地址SELECT出來當作另外一個欄位, : 目前僅有試出來用正規表示式把有IP的資料抓出來, : 但是還沒有辦法單獨把IP抓出來,請各位高手指點,感激不盡。 : 下面是系統log的舉例: : ZZ:XX:YY:44: Accepted password for root from 140.117.100.168 port 33809 ssh2 : 下面是抓出有IP的資料的SQL式: : SELECT * : FROM `sysLog` : WHERE report REGEXP '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' 如果確定你的log 一定會有 "from" 跟 "port"字串的話,就可以這樣做 declare @my_str nvarchar(max) set @my_str='ZZ:XX:YY:44: Accepted password for root from 140.117.100.168 port 33809 ssh2' select ltrim(rtrim(substring(@my_str,4+charindex('from',@my_str),charindex('port',@my_str)-charindex('from',@my_str)-4 ))) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.24.70

02/15 18:52, , 1F
感謝協助,但不一定有 from 跟 port
02/15 18:52, 1F

02/15 18:53, , 2F
我想我還是寫程式來跑可能比較快
02/15 18:53, 2F
文章代碼(AID): #1H7QCa-_ (Database)
文章代碼(AID): #1H7QCa-_ (Database)