
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ランキング
-
アクセス2000でデータ抽出...
-
Access2007でSQLの複数列副問い...
-
Access Left$関数で全角半角が...
-
Accessのクエリーのゼロデータ...
-
access2019 チェックボックスと...
-
アクセスのクエリ…
-
AccessからExcelへの条件付エク...
-
Access:固定長文字列ファイル...
-
Accessクエリで年月フィールド...
-
Access クエリで連結する文字...
-
ACCESS クエリ 抽出条件が多い場合
-
access(アクセス):パラメータ...
-
アクセスのフィルタ nullにつ...
-
ExcelからAccessデータを検索す...
-
access レポートで罫線...
-
WORD差し込み印刷:日付の処理 ...
-
ACCESSのレコード操作で1つ前...
-
ファイルメーカ 集計の表示
-
Accessを使ってレポートを印刷...
-
ファイルメーカでのパスワード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセス2000でデータ抽出...
-
Accessクエリで特定の行を削除...
-
Access2007でSQLの複数列副問い...
-
Accessのクエリーのゼロデータ...
-
Access クエリで連結する文字...
-
access2019 チェックボックスと...
-
Accessのデータの一部を削除す...
-
アクセスのフィルタ nullにつ...
-
Access Left$関数で全角半角が...
-
SQLのLIKE検索で清音と濁音/半...
-
Access:固定長文字列ファイル...
-
accessで空白の時の抽出
-
accessであるデータを抽出でき...
-
ACCESS クエリ 抽出条件が多い場合
-
access(アクセス):パラメータ...
-
アクセスで任意の件数を抽出す...
-
Accessクエリで年月フィールド...
-
Access からのラベル作成時、一...
-
Accessのクエリで1フィールドの...
-
Accessの外部結合プロパティに...
おすすめ情報