作者greetmuta (愚零斗武多)
看板Database
标题Re: [SQL ] 从一长串文字中select出IP
时间Fri Feb 15 10:53:21 2013
※ 引述《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
1F:推 t0336470:感谢协助,但不一定有 from 跟 port 02/15 18:52
2F:→ t0336470:我想我还是写程式来跑可能比较快 02/15 18:53