代码之家  ›  专栏  ›  技术社区  ›  Zoitc2014

我需要使用数据库中的特定字符创建一个自定义查询

  •  2
  • Zoitc2014  · 技术社区  · 14 年前

    现在我正在尝试创建一个过滤器,它将根据部门代码从计划中选择航班号。现在,为了澄清航班号输入数据库的方式,有两个字段:第一个字段是代码,通常输入为CCC,另一个字段是航班号NOC001,等等。

    CCC-NOC001型 如果你能给我任何帮助,我将不胜感激

    3 回复  |  直到 14 年前
        1
  •  2
  •   Azeem Michael    14 年前
    $dbh = new PDO($dsn, $user, $password);
    $query = "select * from [TableName] where [ColumnName] like '%NOC%'";
    $stmt = $dbh->prepare($query);
    $stmt->execute();
    if ($stmt->rowCount() > 0) {  
       $resultset = $stmt->fetchAll(PDO::FETCH_ASSOC);
       foreach ($resultset as $row) {
           $flight = $row['ColumnName'];
           $flightNum = str_replace('CCC-NOC', '', $flight);
       }
    }
    
        2
  •  3
  •   Devid G    14 年前

    只是一个建议:为什么不为所有部分使用不同的mysql列呢?最终的结果将是简单的concat,而且不会有任何问题。 MySQL没有 ... 致以最诚挚的问候。

        3
  •  2
  •   Ashwini Dhekane    14 年前

    可以在SQL查询中使用REGEXP

    SELECT * FROM [Table] WHERE [flighNumber] REGEXP '.{3}-[selected NOC]\d{3}'
    

    {3}表示代码(CCC),用用户选择的代码替换[selected NOC],\d{3}表示最后三位代码(001、002等)。