SQL文中で、条件に文字列を指定することができます。
name列が「りんご」である行を毛句作してみます。
文字列はシングルクォーテーションで囲みます。
SELECT *
FROM product
WHERE name='ものさし'
サンプルコードの実行結果はこちら
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>SQL 条件を付けて検索</title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php $dbName ="sqlite:test.db"; $uName = ""; $pw = ""; $db = new PDO($dbName,$uName,$pw); //抽出対象をname列に「ものさし」という文字列がある行に限定している $que = "SELECT * FROM product WHERE name='ものさし'"; $data = $db->query($que); ?> <table border="2"> <tr bgcolor="#b0b0b0"> <th>番号</th> <th>商品</th> <th>単価</th> </tr> <?php while( $value = $data->fetch() ){ $id = $value["id"]; $name = $value["name"]; $price = $value["price"]; echo "<tr>" . "<td>{$id}</td>" . "<td>{$name}</td>" . "<td>{$price}</td>" . "</tr>"; } $db = null; ?> </table> </body> </html> |
データの一部を検索する
文字列検索時に、データの一部を指定し、検索することもできます。
そのためには、
LIKE
という指定を使います。
例を挙げると、「ン」という文字を含む商品を検索します。
このとき複数の文字列を表す「%」を、文字「ン」の前後につけます。
以下のようにかきます。
SELECT *
FROM product
WHERE name LIKE '%ン%'
サンプルコードの実行結果はこちら
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>SQL 条件を付けて検索</title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php $dbName ="sqlite:test.db"; $uName = ""; $pw = ""; $db = new PDO($dbName,$uName,$pw); //抽出対象をname列に「ン」という文字列がある行に限定している $que = "SELECT * FROM product WHERE name LIKE '%ン%'"; $data = $db->query($que); ?> <table border="2"> <tr bgcolor="#b0b0b0"> <th>番号</th> <th>商品</th> <th>単価</th> </tr> <?php while( $value = $data->fetch() ){ $id = $value["id"]; $name = $value["name"]; $price = $value["price"]; echo "<tr>" . "<td>{$id}</td>" . "<td>{$name}</td>" . "<td>{$price}</td>" . "</tr>"; } $db = null; ?> </table> </body> </html> |
実行すると、「ン」を含む、「ペン」と「インク」が抽出できました。