【问题标题】:mysql select query search one word in multiple columnsmysql select查询在多列中搜索一个单词
【发布时间】:2013-02-13 04:46:24
【问题描述】:

需要帮助。 我正在准备一个搜索表格。在选择查询中需要帮助 我是否可以在表格的所有列中搜索“建筑”字样 以下是我尝试过的查询。

$search = $_POST['search'];
$sql = mysql_query("SELECT * FROM property WHERE posthead,requestto,ptype,requestby,owner,bed,bath,price,sqft,descp = '".$search."'");
$result = (mysql_fetch_array($sql));

echo "Post Head : ". $result['posthead']."<br />";
echo "Request To : ". $result['requestto']."<br />";
echo "Type : ". $result['ptype']."<br />";
echo "Request By : ". $result['requestby']."<br />";
echo "Owner : ". $result['owner']."<br />";
echo "Bed : ". $result['bed']."<br />";
echo "Bath : ". $result['bath']."<br />";
echo "Price : ". $result['price']."<br />";
echo "Sq ft. : ". $result['sqft']."<br />";
echo "Description : ". $result['descp']."<br />";

【问题讨论】:

标签: php mysql


【解决方案1】:
$sql = mysql_query("SELECT * FROM property WHERE posthead = '".$search."' OR requestto= '".$search."' OR ptype= '".$search."' OR requestby = '".$search."' OR owner= '".$search."' OR bed = '".$search."' OR bath= '".$search."' OR price= '".$search."' OR sqft,descp = '".$search."'");

并将$result = (mysql_fetch_array($sql)); 更改为$result = (mysql_fetch_assoc($sql));

注意:

  1. 您的查询容易受到 sql 注入的影响
  2. mysql_* 函数已弃用,使用 mysqli_* 或 PDO

【讨论】:

    【解决方案2】:

    试试这个:

    最好使用 "CONCAT" 作为列:

    $sql = mysql_query("SELECT * FROM 属性 WHERE CONCAT(posthead,requestto,ptype,requestby,owner,bed,bath,price,sqft,descp) LIKE "%.$search."%'");

    OR 可以,但 CONCAT 可以减少查询大小。

    【讨论】:

      【解决方案3】:

      试试SELECT * FROM property WHERE posthead = $search OR requestto = $search ...

      【讨论】:

        【解决方案4】:

        由于您正在创建一个搜索表单,您可能希望能够通过部分匹配而不是完全匹配来查找记录。为此,您可以使用LIKE

        $q = "SELECT * FROM property 
        WHERE posthead  LIKE '%$search%' OR
              requestto LIKE '%$search%' OR
              ptype     LIKE '%$search%' OR
              requestby LIKE '%$search%' OR
              owner     LIKE '%$search%' OR
              bed       LIKE '%$search%' OR
              bath      LIKE '%$search%' OR
              price     LIKE '%$search%' OR
              sqft      LIKE '%$search%' OR
              descp     LIKE '%$search%'";
        
        $sql = mysql_query($q);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-11-02
          • 2017-01-08
          • 1970-01-01
          • 2015-07-13
          • 2012-05-21
          • 1970-01-01
          • 2013-12-18
          相关资源
          最近更新 更多