如何搜索存储序列化的字符串

时间:2012-07-01 10:10:22

标签: php mysql

我想从这个表中搜索计算机,当我将它存储在数据库中时,现在可以找到字符串并传递给查询,这样它就会出现在数据库中,然后显示结果

我正在做

  1. 我从网址获取值我的网址看起来像localhost \ demo \ article.php?filter = computer

    $_GET['filter']

  2. 我的数据库是

    id | name |tag
    
    1  |java  |a:2:{i:0;s:8:"Computer";i:1;s:4:"Code"; 
    
    2  |dbms  |a:2:{i:0;s:8:"Computer";i:1;s:4:"dbms"; 
    
    3  |c     |a:2:{i:0;s:8:"elect";i:1;s:4:"Code"; 
    
  3. 现在我想要获取计算机所在的所有行或代码

    我正在使用查询

    $query1 = "SELECT * FROM $tableName WHERE tag='%".$_GET['filter']."%' ";
    

    但它没有显示具有计算机或代码的行..

    就像stackoverflow标签过滤

2 个答案:

答案 0 :(得分:5)

解决您的问题是将=替换为like,以便您的查询

$query1 = "SELECT * FROM $tableName WHERE tag like '%".$_GET['filter']."%' ";

更好的方法是创建额外的两个表。一个将包含您的标签(可选),另一个将包含标签信息。

enter image description here

This article会对你有所帮助

答案 1 :(得分:4)

Normalize your database你将不再需要用螺丝刀转动钉子。