VB2008+Accessでアプリケーションを開発しています。
SQLのLIKE検索では、清音と濁音/半濁音、ひらがなとカタカナ等を区別してくれないのですが、これを区別してくれる方法はないでしょうか?
例:(field1はテキスト型フィールド)
SELECT * FROM tblA WHERE field1 LIKE '%グラス%'
を実行すると、
「クラス」「思いめぐらす」なども検索されてしまいます。
これを、
「サングラス」「グラスワイン」などだけがヒットするようにしたいのです。
ちなみに、MySQLではコチラに回答がありました。
http://oshiete1.goo.ne.jp/qa3918969.html
Accessだけが不可能で、SQLServerやOracleならできるかどうかも知りたいです。どうぞ宜しくお願いします。
No.2ベストアンサー
- 回答日時:
LIKEではないですが、
SELECT Name FROM Table1 WHERE InStr(StrConv(Name,128),StrConv('グラス',128))<>0
で抽出できます。
パフォーマンスについては調べていません。(相当悪いかも)
ご回答ありがとうございます。
望んでいた通りの結果を得ることができました。LIKEの代わりにInStrの戻り値を調べるとは感心しました。また、AccessのStrConv関数に128という引数を与えて、文字コードを揃えたうえで比較するところも素晴らしいです。
パフォーマンスですが、試しにAccessにJDBC接続して、SQL Developerで計測してみたところ、普通のLIKE検索と比較して約3倍の時間を要しましたが、今回は結果が大事ですので、我慢したいと思います。
大変救われました。ありがとうございました。
No.3
- 回答日時:
instr関数とvbBinaryCompareモードの組み合わせで逃げられませんか。
ご回答ありがとうございます。
回答番号No.2のShowMeHowさんのご回答とほぼ同じ方法と思いますが、vbBinaryCompareの使い方も調べておこうと思います。ありがとうございました。
No.1
- 回答日時:
SQL Serverだけ書いときます。
以下いずれでも。
SELECT * FROM TblA
WHERE FIELD1 LIKE '%グラス%' COLLATE JAPANESE_CI_AS_KS_WS
SELECT * FROM TblA
WHERE FIELD1 LIKE '%グラス%' COLLATE JAPANESE_BIN
早速のご回答ありがとうございます。
残念ながら、いずれもAccessでは構文エラーになりました。
Oracleで試してみたところ、なんと、COLLATE・・・ナシで普通にLIKE検索するだけで、きちんと区別してくれました。今回はDBをOracleに変更できませんので、なんとかしてAccessで実現できないものかと悩んでおります。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
検索で濁点や半濁点をヒットさせない
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessクエリで特定の行を削除...
-
アクセスのフィルタ nullにつ...
-
Accessのクエリーのゼロデータ...
-
Access クエリで連結する文字...
-
Access2007でSQLの複数列副問い...
-
Accessクエリで年月フィールド...
-
AccessからExcelへの条件付エク...
-
Accessのデータの一部を削除す...
-
accessで空白の時の抽出
-
access(アクセス):パラメータ...
-
access2019 チェックボックスと...
-
アクセスで任意の件数を抽出す...
-
ACCESSでのフィールド比較方法?
-
Access:固定長文字列ファイル...
-
「#エラー」の回避
-
差し込み文書のルールで if the...
-
アクセスで入力したデータの順...
-
Accessのレポート上のテキスト...
-
ACCESSのフォームで次のレコー...
-
ACCESSでデータゼロ件の時レポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessクエリで特定の行を削除...
-
Access2007でSQLの複数列副問い...
-
アクセスのフィルタ nullにつ...
-
Accessのクエリーのゼロデータ...
-
Access クエリで連結する文字...
-
access2019 チェックボックスと...
-
AccessからExcelへの条件付エク...
-
Access:固定長文字列ファイル...
-
accessで空白の時の抽出
-
access(アクセス):パラメータ...
-
Accessのデータの一部を削除す...
-
SQLのLIKE検索で清音と濁音/半...
-
Accessのクエリで1フィールドの...
-
アクセスで任意の件数を抽出す...
-
アクセスのクエリ…
-
Access Left$関数で全角半角が...
-
Accessクエリ特定文字列のカウ...
-
Accessクエリで年月フィールド...
-
accessで年代別抽出方法
-
ACCESS クエリ 抽出条件が多い場合
おすすめ情報