您好,欢迎访问一九零五行业门户网

查询二张表并输出

查询2张表并输出
整个情况是这样的:
 a表结构
 id name   info
 1  栏目一  (存储样式为a:{s:6:picid;s:2:74;s:9:text;s:1:存储内容区;})
 2  栏目二  (存储样式为a:{s:6:picid;s:2:75;s:9:text;s:1:存储内容区;})
 b表结构
 id url
 74 图片路径
 首先通过查询获取到了a表info中picid的id号为74,75的数组
 输出样式为:
 array
 (
     [0] => 74
     [1] => 75
 )
 然后在查询b表id为74,75的数据
 然后如何关联输出这2张表的内容呢?
 输出结果如何为:
 array
 (
     [0] => array
         (
             [id] => 1
             [name] => 栏目一
             [url] => 图片路径
             [info] => info中text的内容
         )
[1] => array
         (
             [id] => 2
             [name] => 栏目一
               [url] => 图片路径
               [info] => info中text的内容
         )
 ....
------解决方案--------------------
取出 info 中的 text 的内容的表达式
substring_index(substring_index(substr(info, locate('text', info)), '', 4), '', -1) as info
两表的关联条件
b表.id = substring_index(substring_index(substr(info, locate('picid', info)), '', 4), '', -1)
表达式很长,你可以用存储过程来缩短他
原理很简单
a:{s:6:picid;s:2:74;s:9:text;s:1:存储内容区;} 
substr(info, locate('picid', info)) 用于取得 picid 看是的一段
picid;s:2:74;s:9:text;s:1:存储内容区;}
内层的 substring_index 用于取得  第4次出现以前的内容
picid;s:2:74
外层的 substring_index 用于取得  最后一次出现以后的内容
74
其它类似信息

推荐信息