MySQL LIKE 子句
我們知道在 MySQL 中使用 SQL SELECT 命令來(lái)讀取數(shù)據(jù)乙漓, 同時(shí)我們可以在 SELECT 語(yǔ)句中使用 WHERE 子句來(lái)獲取指定的記錄粟耻。
WHERE 子句中可以使用等號(hào) =
來(lái)設(shè)定獲取數(shù)據(jù)的條件,如 "jianshu_author = 'Fangdm'"训裆。
但是有時(shí)候我們需要獲取 jianshu_author 字段含有 "Fang" 字符的所有記錄袄简,這時(shí)我們就需要在 WHERE 子句中使用 SQL LIKE 子句腥放。
SQL LIKE 子句中使用百分號(hào) %
字符來(lái)表示任意字符,類似于UNIX或正則表達(dá)式中的星號(hào) *
绿语。
如果沒(méi)有使用百分號(hào) %
, LIKE 子句與等號(hào) =
的效果是一樣的捉片。
語(yǔ)法
SELECT 字段 FROM 表 WHERE 某字段 LIKE 條件
- 你可以在 WHERE 子句中指定任何條件平痰。
- 你可以在 WHERE 子句中使用LIKE子句。
- 你可以使用LIKE子句代替等號(hào)
=
伍纫。 - LIKE 通常與
%
一同使用宗雇,類似于一個(gè)元字符的搜索。 - 你可以使用 AND 或者 OR 指定一個(gè)或多個(gè)條件莹规。
- 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句來(lái)指定條件赔蒲。
在命令提示符中使用 LIKE 子句
以下我們將在 SQL SELECT 命令中使用 WHERE...LIKE 子句來(lái)從MySQL數(shù)據(jù)表 mydb_jianshu 中讀取數(shù)據(jù)。
實(shí)例
以下是我們將 mydb_jianshu 表中獲取 jianshu_author 字段中以 Fang
為開(kāi)頭的所有記錄:
mysql> use mydb;
Database changed
mysql> select * from mydb_jianshu where jianshu_author like 'Fang%';
+------------+----------------------------+----------------+-----------------+
| jianshu_id | jianshu_title | jianshu_author | submission_date |
+------------+----------------------------+----------------+-----------------+
| 2 | 學(xué)習(xí)網(wǎng)絡(luò)安全從0到1 | Fangdm | 2018-02-09 |
| 3 | MySQL基礎(chǔ) | Fangdm | 2018-02-09 |
+------------+----------------------------+----------------+-----------------+
2 rows in set (0.08 sec)
在PHP腳本中使用 LIKE 子句
實(shí)例
以下是我們使用PHP腳本在 mydb_jianshu 表中讀取 jianshu_author 字段中以 Fang
為開(kāi)頭的所有記錄:
<?php
$dbname = 'mydb';
$servername = 'localhost';
$username = 'root';
$password = '';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 設(shè)置 PDO 錯(cuò)誤模式為異常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "select * from mydb_jianshu where jianshu_author like 'Fang%';";
// 設(shè)置結(jié)果集為關(guān)聯(lián)數(shù)組
$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;
?>
輸出結(jié)果: