
SQL初心者なのですが、複数のフィールドをターゲットにしたフリーワード検索用のSQL文の書き方が解らず困っております。
例えば以下の様に"責任者"フィールドを限定して"田中"さんを探す事は出来るのですが、
----------------------------------------------------------------
SELECT * FROM `会員表` WHERE 責任者 LIKE '%田中%'
----------------------------------------------------------------
複数の、例えば以下の3つの
●責任者フィールド
●担当者フィールド
●顧客フィールド
全てを対象に一括で”田中”さんを検索したい場合、
どのように記述すれば良いのでしょうか?
どなたか有識者の方いらっしゃいましたら宜しくお願いします!!
No.2ベストアンサー
- 回答日時:
#1さんの方法はお勧めできません。
1)インデックスがきかない
2)セパレータを用いていない
1)に関しては、そもそも前後に%をいれた時点で、きかないので
あまり気にすることもないかもしれませんが、2)に関しては
たとえば、「責任者=吉田,担当者=中村」さんでもヒットします。
これはセパレータに適当な区切り文字を入れる必要があるでしょう。
まっとうに考えれば
(責任者 LIKE '%田中%'
OR 担当者 LIKE '%田中%'
OR 顧客 LIKE '%田中%')
とかじゃないですかねぇ
No.1
- 回答日時:
すぐに思いつくのは concat でフィールドを結合して検索する方法です。
SELECT * FROM `会員表` WHERE concat(責任者,担当者,顧客) LIKE '%田中%'
Mysql 5.0 でテストしました。
おそらく4.xでも大丈夫だと思います。いかがでしょう?。
参考URL:http://dev.mysql.com/doc/refman/4.1/ja/string-fu …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルの最後(最新)のレコー...
-
SQLローダーCSV取込で、囲み文...
-
Null値件数をカウントする式に...
-
BLOBやCLOBのパフォーマンスを...
-
ACCESSのクエリで空白以降を別...
-
2回実行のSQL文を1回にしたい
-
AccessでMySQLを表示 改行が表...
-
配列に指定した値が含まれてい...
-
int型フィールドにnullを登録で...
-
テーブルのフィールドの一番長...
-
単一グループのグループ関数で...
-
レコードの登録順がおかしい
-
並べ替えについて
-
複数のテーブルから値を合計出...
-
select文の実行結果に空白行を...
-
SELECT FOR UPDATE で該当レコ...
-
トランザクションログを出力せ...
-
Oracleで「文字が無効です」の...
-
【PL/SQL】FROM区に変数を使う方法
-
1の行を固定した上でVBAを用い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
int型フィールドにnullを登録で...
-
BLOBやCLOBのパフォーマンスを...
-
配列に指定した値が含まれてい...
-
2回実行のSQL文を1回にしたい
-
最初のレコードを取得したい
-
SELECTした合計値をそのまま割...
-
テーブルのフィールドの一番長...
-
MySQLでの近似値順での値の取得...
-
UPDATE時にundefinedがセットさ...
-
MySQLからフィールド名のリスト...
-
チェックボックスから得る値を...
-
WHERE句内でプライマリキーの検...
-
固定長データのテキストファイ...
-
mysqlimportについて
-
一つのフィールドに複数の外部...
-
DateTime型の検索
-
Null値件数をカウントする式に...
-
バッチ処理に関して
おすすめ情報