如何从mysql中的一行中的字符串数组中获取行

时间:2011-08-23 04:43:17

标签: mysql

这是server_var_dump第一行输出http://pastebin.com/e1qHG64Q 现在如何查询获取HTTP_USER_AGENT行并将其保存在单独的字段中? 我用PHP脚本完成了这个,但是我想用mysql查询来做这件事,因为数据库很大,它会很快。

2 个答案:

答案 0 :(得分:0)

这样的东西?

UPDATE your_table
SET user_agent = SUBSTR(server_var_dump, 
        @p, INSTR(SUBSTR(server_var_dump, @p, 100), "\n")-1)
WHERE @p := INSTR(server_var_dump,'[HTTP_USER_AGENT]')+21;

答案 1 :(得分:0)

我也找到了答案。 :)思想对其他人有用:

UPDATE tablename SET useragent= SUBSTRING_INDEX(SUBSTR(server_var_dump,INSTR(server_var_dump,'[HTTP_USER_AGENT]')+21,200), '[', 1);

如何? substring_index获取子字符串,直到第一次出现“[”delimeter定义。和子串定义从[HTTP_USER_AGENT] +21 +21开始删除[HTTP_USER_AGENT]的东西。现在我们已经清洁了我们想要的东西是有用的。 :) 现在我有一个疑问。如果我将此更新为整列。更新是否与我们从中提取user_agent的server_var_dump行相对应?或者它会从第一次更新?