こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL 完全に一致したデータを検索抽出

SQLのテーブルから完全に一致したデータを抽出するにはどうすればよいでしょうか。

仮に、dayとweatherの2つのカラムでテーブルを作成
<?php /* 検索フォーム */ ?>
<form action = "index.php" method="post">          
<table>
<tbody>
<tr>
<th>月</th>
<th>天気</th>
</tr>
<tr>
<td><input type="text" name="day"></td>
<td><input type="text" name="weather"></td>
</tr>
</tbody>
</table>
<input type="submit" name="submit" value="検索">
</form>

<?php /* 検索 */ ?>
<?php
~略~(SQLを呼び出す)
$pdo = connect();
$st = $pdo->query("SELECT * FROM table WHERE day LIKE '%" . $_POST["day"] . "%' );
$word = $st->fetchAll();
?>
とします。

カラム「day」の中に「2」「12」「25」のデータが入っていたとします。

この場合、検索フォームで「2」と入力して検索すると
「2」「12」「25」全てのデータが抽出されます。

そうではなく、「2」のデータだけが抽出されるにはどうしたらよいでしょうか?

検索フォームを作る時は、上記のLIKEを使ったものしか知らないので、困っております。

何卒よろしくお願いします。

投稿日時 - 2017-05-02 07:13:33

QNo.9324285

困ってます

質問者が選んだベストアンサー

ごめんなさい、ミスしました。。

query("SELECT * FROM table WHERE day = '" . $_POST["day"] . "'");

正しくは上記です。

投稿日時 - 2017-05-02 08:26:01

お礼

ご指示通りに書き換えたら動きました。
ありがとうございました!

投稿日時 - 2017-05-02 13:16:56

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

query("SELECT * FROM table WHERE day = '%" . $_POST["day"] . "%' );

とすればOKです。

投稿日時 - 2017-05-02 08:23:32