人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Mysqlのクエリで値「hogehoge」を用いて下記の対象をすべてマッチさせるクエリを知りたいです。
・「hoge hoge」
・「hoge hoge」
・「hoge hoge hoge」


下記のようなクエリを考えたのですが全角スペースと半角スペースが入っている対象にマッチできませんでした。
SELECT * FROM `table` WHERE
replace(`column`, ' ', '') = 'hogehoge' AND
replace(`column`, ' ', '') = 'hogehoge';

●質問者: php-beginner
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:hoge MySQL SELECT クエリ マッチ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●50ポイント ベストアンサー

SELECT * FROM `table` WHERE

replace(replace(`column`, ' ', '') , ' ', '') = 'hogehoge';

このように 半角空白を除いたものから 全角空白を除いて、一致するかしてみたらいかがでしょうか?

◎質問者からの返答

replaceの中にreplaceって出来るんですね!

うまくマッチできました!

ありがとうございました。


2 ● GreenStar
●20ポイント

ANDをORに変えればいいというような手抜き回答がきてそうな気がする???w


正規表現使ったほうがいいでしょうね。

CREATE TEMPORARY TABLE test(`column` TEXT);
INSERT INTO test VALUES ('hoge hoge'),('hoge hoge'),('hoge hoge hoge'),('fugo fugo'),('fugo fugo'),('fugo fugo fugo');
SELECT * FROM test WHERE `column` regexp '.*hoge( | )hoge.*';

http://dev.mysql.com/doc/refman/4.1/ja/regexp.html

http://dev.mysql.com/doc/refman/5.1/ja/regexp.html

◎質問者からの返答

今回どこでスペースが入るか予測出来ないんですよ。

一文字区切りでやれば良いのですがシンプルではないので悩んでいました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ