我有一个通过查询特定网站的API获得的关键字表,结构如下:
keyword1 value
keyword1 value2
keyword1 value3
keyword1 value4
keyword2 value5
keyword2 value6
这持续350,000行。
我尝试过将PHP用于&虽然循环但我能得到的最好(我的经验有限)如下:
keyword1 {terrible php array dump of correct corresponding values}
keyword2 {terrible php array dump of correct corresponding values}
keyword3 {terrible php array dump of correct corresponding values}
我真的想要这样的事情:
keyword1 value, value1, value2, value3...
keyword2 valuex, valuex+1 ...
keyword3 valuey, valuey+1 ...
最终,它实际上只是在现有数据中进行转换,并在单个MySQL逗号分隔字段中存储与唯一关键字匹配的列。
我的想法是(我知道语法是混合的和不正确的):
$keywords = select distinct original_kw from tbl_keyword;
foreach( $keywords as $keyword) {
$result = select * from tbl_keyword where original_kw = $keyword
foreach( $result as $answer){
update new_tbl_keyword
set $original_kw = $keyword
set $suggested_kw = groupconcatenate($result,", ",$answer);
}
}
最好是用PHP还是单个MySQL脚本进行操作超出我的范围,我不是开发人员,但是我已经使用过这个网站来获取尽可能多的东西。这个网站太棒了!我已经设法查询API,传递身份验证标头并解释所有JSON以实现这一点,现在我卡住了&迫切需要帮助!
答案 0 :(得分:1)
如果您已将数据存储在SQL表中,则只需编写:
SELECT keyword, GROUP_CONCAT(value)
FROM table_name
GROUP BY keyword
你得到:
keyword1 value, value1, value2, value3...
keyword2 value5, value6 ...