如何减少php/mysql数组选择循环中的查询
我需要在我的php/mysql项目中显示故事细节和标签名称 对于每个故事行,都有一个名为:tags的字段,它将tags id保存为数组 表名:故事 表格字段:标记 已归档的标签示例: 1 5 6 他们之间的距离 我有一张像这样的标签表 表名:bt_标签 表格文件:tid,标签 现在的问题是: 当使用while循环获取故事表中的所有字段时,页面使用1个查询来显示每个故事的详细信息,但是为了显示标记的名称,我应该查询另一个表来查找名称,我们在故事表中存储了ID 现在我使用while循环之间的循环来显示标记名,但我确信有更好的方法来减少页面查询 允许更改数据库表中的任何内容如何减少php/mysql数组选择循环中的查询,php,mysql,Php,Mysql,我需要在我的php/mysql项目中显示故事细节和标签名称 对于每个故事行,都有一个名为:tags的字段,它将tags id保存为数组 表名:故事 表格字段:标记 已归档的标签示例: 1 5 6 他们之间的距离 我有一张像这样的标签表 表名:bt_标签 表格文件:tid,标签 现在的问题是: 当使用while循环获取故事表中的所有字段时,页面使用1个查询来显示每个故事的详细信息,但是为了显示标记的名称,我应该查询另一个表来查找名称,我们在故事表中存储了ID 现在我使用while循环之间的循环来显
如何在不使用**for循环的情况下改进此脚本并显示标记的名称?***听起来加入可能会对您有所帮助
select s.*,
b.tag,
b.slug
from story_table s
left join bt_tags b on b.tid in s.tags
在dev.mysql.com如果不允许您更改数据库表,我不确定我们在这里能做多少。这太棒了,兄弟!;-)我不知道为什么我不能将其设置为工作状态,实际上,存储在stories表中的标记ID按空格分隔,而不是逗号,以及如何显示标记名数组?只是$row['tag']?plz帮助完成此脚本示例查询是简写的;你需要换些东西。代替
s.tags
你可以使用$tags\u id
变量你介意更新你的答案吗,我想举个例子,我能更好地理解它。很好的一个例子,但我没有成功地使它工作,我如何在查询后显示标记名数组,从而更改group\u concat(tags.tagname)
到将(tags.tagname)分组为mytags
,将mytags
替换为您想要的任何内容,您应该能够像$row['mytags']一样引用它。
SELECT stories.storyid,
stories.storyname,
group_concat( tags.tagname )
FROM stories, tags
WHERE CONCAT( ' ', stories.tags, ' ' ) LIKE CONCAT( '%', tags.tagid, '%' )
GROUP BY stories.storyid, stories.storyname