WHERE 子句用於篩選滿足條件的行,可用於 SELECT、UPDATE、DELETE,是精準查詢的核心。
SELECT col1, col2, ...
FROM table1, table2 ...
WHERE condition1 [AND|OR] condition2 ...
| 操作符 | 描述 | 示例 (A=10, B=20) |
|---|---|---|
= | 等於 | (A = B) → false |
<>, != | 不等於 | (A != B) → true |
> | 大於 | (A > B) → false |
< | 小於 | (A < B) → true |
>= | 大於等於 | (A >= B) → false |
<= | 小於等於 | (A <= B) → true |
默認不區分大小寫:
SELECT * FROM tutorials_tbl WHERE tutorial_author = 'Sanjay'; -- 匹配 'sanjay'/'SANJAY'
強制區分大小寫用 BINARY:
SELECT * FROM tutorials_tbl WHERE BINARY tutorial_author = 'sanjay'; -- 僅匹配小寫
mysql -u root -p
USE TUTORIALS;
SELECT * FROM tutorials_tbl WHERE tutorial_author = 'Sanjay';
<?php
$dsn = 'mysql:host=localhost;dbname=TUTORIALS;charset=utf8mb4';
$user = 'root';
$pass = 'rootpassword';
try {
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
$author = 'Sanjay';
$stmt = $pdo->prepare('
SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl
WHERE tutorial_author = :author
');
$stmt->execute([':author' => $author]);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: {$row['tutorial_id']}
";
echo "Title: {$row['tutorial_title']}
";
echo "Author: {$row['tutorial_author']}
";
echo "Date: {$row['submission_date']}
";
}
echo "Query executed successfully\n";
} catch (PDOException $e) {
die("Error: " . $e->getMessage());
}
?>
WHERE 條件最快LIKE 'abc%' 可用索引,LIKE '%abc%' 全掃