加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 存储SQL字符串数组,以及后续查询

发布时间:2021-03-16 14:24:42 所属栏目:MySql教程 来源:网络整理
导读:我想在SQL数据库中存储可变大小的图像标签列表,然后能够根据标签在数据库中搜索图像.我目前正在从数据库中提取标记列表,并检查查询标记是否包含在数组中.我有什么方法可以将这些格式化为sql查询而不是在我拉出标签后在php中执行它们? 该列表存储为表单的

我想在SQL数据库中存储可变大小的图像标签列表,然后能够根据标签在数据库中搜索图像.我目前正在从数据库中提取标记列表,并检查查询标记是否包含在数组中.我有什么方法可以将这些格式化为sql查询而不是在我拉出标签后在php中执行它们?

该列表存储为表单的逗号分隔值:

“阳光明媚,海滩,棕榈树”-im1

“手掌,下雨,云”-im2

“冬天,雪,雪人,赃物”-img

我希望能够获得查询标记的联合:
查询“beach,palms”应该返回im1和im2

谢谢

最佳答案 您将希望避免数据库中的分隔列表 – 正如您所发现的那样,这会抵消使用数据库存储结构化数据的优势.相反,您应该创建一个每行一个标记的新表,然后使用外键从主映像表中引用该表.

图像表

> id
> image_name

标签表

> id
> tag_name

Image_Tags表

> image_id(引用图像表主键)
> tag_id(引用标签表主键)

这样,您就可以运行如下查询:

SELECT t.tag_name,i.image_name FROM image_tags it
    INNER JOIN images i on it.image_id = i.id
    INNER JOIN tags t on it.tag_id = t.id
WHERE t.tag_name in ('beach','palms')

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读