
※部分一致検索ができなくて困っています。
※Apache2.0.52 + MySQL 5.0.51a + PHP5.2.8の環境です。
" sprintf "を使った、下記コードで部分一致検索をするには、どのようにしたらい
いのか、どなたかご教授いただけないでしょうか。
--------------------------------------------------------------------------
$u_address = $_REQUEST['u_address'];// POSTで送られてきた値を受け取り変換。
検索fieldは、"u_address"です。
--------------------------------------------------------------------------
$query = sprintf("SELECT * FROM dive_free_tbl_ WHERE u_address = '%s' ORDER BY serial DESC", $u_address);
※上記のコードだと、"完全一致"にて検索となります。(部分一致の検索にしたい)
下記のコードに変更して、見たのですがエラーにでダメでした。(WHERE以下を抜粋)
WHERE u_address = '%s' ORDER BY serial DESC", LIKE'%$u_address%');
WHERE u_address = '%s' ORDER BY serial DESC", LIKE'[%$u_address]%'');
WHERE u_address = '%s' ORDER BY serial DESC", LIKE'{%$u_address}%'');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'%$u_address%');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'[%$u_address]%'');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'{%$u_address}%'');
" sprintf "を使わず、下記のコードでは問題なく部分一致検索ができます。
--------------------------------------------------------------------------
$sql = "SELECT * FROM dive_free_tbl_ WHERE u_address LIKE'%東%'";
--------------------------------------------------------------------------
何方かご教授いただきたく、よろしくお願いします。
以上
No.2ベストアンサー
- 回答日時:
すみません。
書き方が悪かったです。>query = sprintf("SELECT * FROM dive_free_tbl_ WHERE u_address = '%s' ORDER BY serial DESC", $u_address);
WHERE句の「=」を「LIKE]に変えてください。
「=」は完全一致、「LIKE」は部分一致の検索をします。
この回答への補足
※ご教授いただいたとおり、" = "を" LIKE "に変更した場合、エラー無く検索できました。
本当にありがとう御座います。
1)" = "を" LIKE "に変更。
2)「 $u_address 」を「"%$u_address%"」に変更。
これで、バッチリでした。本当にありがとう御座います。
今後もお世話になることがあるかと思いますが、よろしくお願いします。
本当にありがとう御座いました。
No.1
- 回答日時:
こんにちわ
>$query = sprintf("SELECT * FROM dive_free_tbl_ WHERE u_address = '%s' ORDER BY serial DESC", $u_address);
↑「WHERE u_address = '%s' 」とWHERE句が「=」になっているからではないかと思われます。
この回答への補足
こんちには、回答を頂きありがとう御座います。
指摘いただいた、「=」を取っていろいろとやってみましたが、
「部分一致検索」は、どうにも実現できませんでした。
実行した内容は、質問の文章にも書きましたが、
WHERE u_address '%s' ORDER BY serial DESC", LIKE'%$u_address%');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'[%$u_address]%'');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'{%$u_address}%'');
を実行してみました。(WHERE以降を抜粋)
エラーが表示されて、部分一致検索はできませんでした。
何か、いい方法がありましたらお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数キーワードを複数カラムに...
-
Accessで文字列の一部を抽出す...
-
一部のカラムでdistinctし全て...
-
他のシートの検索
-
SELECT文で、指定カラム以外の...
-
DBの定義のサイズを大きくし過...
-
波形データを格納するデータベース
-
BULK INSERT時のNull許容について
-
AUTO_INCREMENTに0はダメ?
-
【Transact-sql】 where条件、i...
-
now()かCURRENT_TIMESTAMPか
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
ドロップダウンリストの連動し...
-
Mysql DATE型のDEFAULT値
-
テーブルの列数を調べたい
-
自分自身のテーブルを参照して更新
-
sql , insert で空行(全ての列...
-
インデックスを削除したいので...
-
インデックスとは?オートナン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlで50音順にorder byしたい。
-
LIKEの右側にカラムを指定でき...
-
複数カラムに対するLIKE文の最適化
-
End Ifに対応するIfブロックが...
-
WHERE `年月日` = '晴' OR `年...
-
スペースによる絞り込み検索をS...
-
whereで全てを検索する方法
-
PL/SQLでの文字列比較
-
複数キーワードを複数カラムに...
-
Accessで文字列の一部を抽出す...
-
SQLステータス:37000について
-
部分一致検索ができなくて困っ...
-
社名でデータ抽出できる検索シ...
-
Access & ADOで「'」のLIKE検索
-
複数のフィールドの検索
-
MySQL 配列もどきを条件式に
-
SQL文に間違いがありますでしょ...
-
MySQLで複数フィールドから同一...
-
アクセルでのクエリ
-
複数条件による検索
おすすめ情報