我实现一个Tag系统...的MySQL/PHP - 标签系统
目前,我有表tags
与name
,description
,createdby
领域。
和表images
有一个字段tags
。在这个字段中,我将把标记名称从tags
表中以逗号分隔。
但是,如果我想要获取带有标记的所有图像Foo
我该如何形成查询?因为该字段将包含用逗号分隔的多个标签。
我实现一个Tag系统...的MySQL/PHP - 标签系统
目前,我有表tags
与name
,description
,createdby
领域。
和表images
有一个字段tags
。在这个字段中,我将把标记名称从tags
表中以逗号分隔。
但是,如果我想要获取带有标记的所有图像Foo
我该如何形成查询?因为该字段将包含用逗号分隔的多个标签。
不确定你是否想过规范化图像表,但这将是最佳解决方案。
而不必
结构的表这样
然后你就可以运行该SQL语句带有特定标签
SELECT * FROM images
WHERE tags = 'forest';
返回所有图片
或者,如果有你需要保持你的表在当前格式的原因,你可以在上面的两个例子使用
SELECT * FROM images
WHERE tags LIKE '%forest%';
这个词“森林”的标签,你正在寻找
尝试类似的东西:
SELECT * FROM images WHERE tags = 'Foo' OR tags LIKE 'Foo,%' OR tags LIKE '%,Foo' OR tags LIKE '%,Foo,%'
我做现在没有尝试过任何东西,因为我不知道如何从查询中获得。 – Fr0z3n
我会规范化数据。创建一个包含每个图像的每个标签的单独记录的表格。这将使你的查询(和一般生活)更简单恕我直言。 – Tom
@Tom,在数据库的使用和速度方面,最好使用你的方法来覆盖我的方法? – Fr0z3n