我在postgresql中有一个文本字段,其中存储了文本文件的内容。
查询:
SELECT m_Field
FROM m_table
WHERE id = 1;
当我运行query时,响应是:
'此处显示了基本步骤,并且在很大程度上依赖于将snort用作ips。\n1.利用Snort IPS防止下载初始感染载体2。利用Snort IP阻止下载特洛伊木马可执行文件3。利用Snort IPS提醒当前感染。从初始感染的计算机上杀死并删除恶意软件。杀死其他恶意软件实例并从计算机中删除。\n6。防止进一步感染,确保业务成功。
现在我只想从这个字段中读取最后n行,这是基于一个拆分字符,在本例中是
\n
是否可以使用一些sql查询来执行此操作,或者我必须从列中读取数据,然后将其拆分?
提前谢谢
最佳答案
如果您想在python中执行此操作,可以获取查询结果并将其拆分到\n
上,然后获取最后n行,如下所示
q = exec_query('SELECT m_Field FROM m_table WHERE id = 1;') # suppose you are executing with some function exec_query
last_n_lines = q.split('\n')[-n]
如果你想在数据库端这样做,你可以这样做
q = exec_query(SELECT string_to_array(m_Field, '\n') FROM m_table WHERE id = 1;)
last_n_lines = q[-n]
这里
string_to_array
是一个postgres函数。