我有两张桌子
表1是:
id | item_id
---------------
1 | a:2:{i:0;s:1:"1";i:1;s:1:"2";}
,第二个表是:
tag_id | tag
------------
1 | c
2 | java
序列化后,我在表1中存储了表2的id。现在我想通过mysql %like%
搜索表1中的标签,但问题是,如果我想在item_id中搜索标签的id为1或2,即使没有存储1,也总能找到结果由我,但这是由序列化功能存储。现在我想知道我该怎么办?任何更好的方法/方法也将受到赞赏!
答案 0 :(得分:5)
序列化数据不适合搜索。
最好改进表格结构:
使用以下结构,可以更轻松地搜索带有标签的项目。
<强>加强>
Mayankswami,示例查询:对于具有指定标记的所有项目:SELECT item_id FROM items_tags WHERE tag_id=(TAG_ID)
对于项目标记:SELECT * FROM item_tags AS IT LEFT JOIN tags AS T ON T.id=IT.tag_id WHERE item_id=(ITEM_ID)