
たびたびお世話になります。
PHPファイルのテキストボックスに入力された文字列でテーブルを検索して結果を取得したいのですが、複数キーワードでのあいまい検索の扱いで困っています。
例えばtitleというカラムにある「今日はいい天気です」という文を検索したい場合は、PHPからSQL文で「select * from table where title like '%天気%';」とやれば引っかかるのですが、では「今日 天気」でやった場合、また「いい 今日」で検索した場合も引っかかるようにしたいのです。
PHPで文字列を代入してSQL文を作る形になるとは思うのですが、この場合、SQL文はどのように記述すればいいのでしょうか?
No.1ベストアンサー
- 回答日時:
あいまい検索の場合、カラム名 LIKE '%キーワード%' ですね。
複数のキーワードを重ねる場合、ANDやORがあります。ANDは両方とも含む場合、ORはどちらかを含む場合です。
即ち、「今日 天気」のどちらかが含まれる場合は、
SELECT * FROM table WHERE ( title LIKE '%今日%' ) OR ( title LIKE '%天気%' );
というクエリを発行すれば良いです。()は無くても同じですが、条件を重ねる場合はあった方が見やすいかもしれません。
回答ありがとうございます。
ANDは分かったのですが、構文が違っていました(汗)
これで何とかなりそうです。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
0の除算
-
列が存在しないと言われる
-
constraint と index の違い
-
alter tableすると、処理が止ま...
-
DB2 「既存カラムへのnot null...
-
INSERTできるレコード数を制限...
-
powergres(postgres)にalter文...
-
大量データを更新したら、処理...
-
長いSQL文を実行するには?
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
SQLServer2005のSQL文での別名...
-
Accessでテーブルの値をテキス...
-
Access 昇順・降順で並び替え...
-
INSERT INTO ステートメントに...
-
Oracle 2つのDate型の値の差を...
-
access2000:フォームで入力し...
-
変数が選択リストにありません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
INSERTできるレコード数を制限...
-
PostgreSQLで表結合+DELETEしたい
-
長いSQL文を実行するには?
-
DBから日付順に指定件数の削除...
-
動的に生成したカラムを使ったF...
-
0の除算
-
■一番最初に値が入っている(Nul...
-
COPY時のtimestamp型について
-
alter tableすると、処理が止ま...
-
SQLで特定データがNULLなら別デ...
-
constraint と index の違い
-
SQLite:項目が存在しない場合の...
-
Oracleの制約構文に関して
-
INSERTできない
-
powergres(postgres)にalter文...
-
DB2でUNIQUE制約を削除したい
-
SQLiteに関数追加
-
DB2 「既存カラムへのnot null...
-
複数キーワードでのあいまい検索
おすすめ情報