あいまい検索 前方一致

前に会社で作成したCMSで色々なデータを入力、管理できるものを作成したのですが、
そのCMSで入力したデータ内から、前日入力した件数を表示させたいという依頼がありました。

ぶっちゃけ簡単だろうと思ってましたが・・・
まず前日のデータを取得するために、前日の日付を取得することからはじめます!
徐にブラウザを立ち上げ、Google先生に質問します「PHP 昨日の日付」・・・

色々な方法があるんですね!
正直自分にはどれが一番良い方法なのかは分からないですが、ここでは下記の様に取得しました。

$zenjitu = date(“Ymd”,strtotime(“-1 day”));

date関数とstrtotime関数を使って昨日の日付を取得しました。
とりあえずテストとして表示させてみる。

print $zenjitu; → 20120210

ちゃんと前日の日付が8桁の数字で表示されました!
あとは簡単!sqlで取得した前日の日付のデータのものを引っ張ってくるだけです。

$sql = “select * from テーブル名 where 日付フィールド名 = ‘$zenjitu'”;

ちょろいもんだぜ!
なんて余裕をかます間もなくおかしい・・・

あれ?何でだ?
調べてみたら、日付フィールドはdatetime型でした。

2012-02-10 10:32:18 ← こんな感じで保存されてました。

少し前に作成したシステムでは日付を8桁の数字で登録していたので気づきませんでした。
これに伴い下記の様に修正。

$zenjitu = date(“Y-m-d”,strtotime(“-1 day”));

$sql = “select * from テーブル名 where 日付フィールド名 like ‘$zenjitu%'”;

今度はばっちり成功でした!

普段あまりSQLを打つ事が少ないので色々忘れてしまっています。
今回の、「あいまい検索 前方一致」もその一つでした。
以前どこかで使った記憶はあるのですが、いつどこで使ったのかも、まさに「あいまい」!
でも今回のこの記事で一生忘れないはず!

多分・・・

コメントを残す