从0到1学习网络安全 【MySQL基础-MySQL LIKE 子

作者: _07 | 来源:发表于2018-02-27 20:51 被阅读46次

    MySQL LIKE 子句

    我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。
    WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "jianshu_author = 'Fangdm'"。
    但是有时候我们需要获取 jianshu_author 字段含有 "Fang" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
    SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *
    如果没有使用百分号 %, LIKE 子句与等号 =的效果是一样的。

    语法

    SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件

    • 你可以在 WHERE 子句中指定任何条件。
    • 你可以在 WHERE 子句中使用LIKE子句。
    • 你可以使用LIKE子句代替等号 =
    • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
    • 你可以使用 AND 或者 OR 指定一个或多个条件。
    • 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

    在命令提示符中使用 LIKE 子句

    以下我们将在 SQL SELECT 命令中使用 WHERE...LIKE 子句来从MySQL数据表 mydb_jianshu 中读取数据。

    实例
    以下是我们将 mydb_jianshu 表中获取 jianshu_author 字段中以 Fang 为开头的所有记录:

    mysql> use mydb;
    Database changed
    mysql> select * from mydb_jianshu where jianshu_author like 'Fang%';
    +------------+----------------------------+----------------+-----------------+
    | jianshu_id | jianshu_title              | jianshu_author | submission_date |
    +------------+----------------------------+----------------+-----------------+
    |          2 | 学习网络安全从0到1         | Fangdm         | 2018-02-09      |
    |          3 | MySQL基础                  | Fangdm         | 2018-02-09      |
    +------------+----------------------------+----------------+-----------------+
    2 rows in set (0.08 sec)
    

    在PHP脚本中使用 LIKE 子句

    实例
    以下是我们使用PHP脚本在 mydb_jianshu 表中读取 jianshu_author 字段中以 Fang 为开头的所有记录:

    <?php
    $dbname = 'mydb';
    $servername = 'localhost';
    $username = 'root';
    $password = '';
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        // 设置 PDO 错误模式为异常
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "select * from mydb_jianshu where jianshu_author like 'Fang%';";
    
        // 设置结果集为关联数组
        $result = $conn->query("$sql");
        $data = $result->fetchAll(PDO::FETCH_ASSOC);
        echo "<table border='1'>
              <tr>
              <td>jianshu_id</td>
              <td>jianshu_title</td>
              <td>jianshu_author</td>
              <td>submission_date</td>
              </tr>
    ";
        foreach ($data as $k => $v) {
            echo "<tr>";
            echo "<td>" . $v['jianshu_id'] . "</td>";
            echo "<td>" . $v['jianshu_title'] . "</td>";
            echo "<td>" . $v['jianshu_author'] . "</td>";
            echo "<td>" . $v['submission_date'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    } catch (PDOException $e) {
        echo $sql . "<br>" . $e->getMessage();
    }
    
    $conn = null;
    ?>
    

    输出结果:


    image.png

    从0到1学习网络安全 【目录】

    相关文章

      网友评论

        本文标题:从0到1学习网络安全 【MySQL基础-MySQL LIKE 子

        本文链接:https://www.haomeiwen.com/subject/iiomxftx.html