2

特定のフィールドを検索しようとしているテーブル (table.foo) があります。SQL クエリを使用して結果を出力する MS Access フォームがあります。このフィールドを検索できるようにしたいユーザーがいます

単純な選択クエリを使用する場合

SELECT foo FROM table
WHERE foo LIKE '%xyz%'

xyz を使用して任意の文字列を取得しますが、ユーザーが x-yz を検索すると、明らかにレコードが取得されませwhere table.foo='xyz'

table.foo 列を複製して table.foo-search 列を作成し、新しいフィールドからダッシュを削除できることはわかっていますが、それはおそらく不必要にスペースを浪費し、データベースに 2 番目の列を維持する必要があるようです。 .

4

2 に答える 2

2

どうぞ:

select foo from table
where REPLACE ( REPLACE ( foo, '-', '' ) , ' ', '' ) like '%xyz%'

出力:x-yz

ライブデモ

于 2013-03-21T04:57:16.437 に答える
0

以下は私のために働きます。

SELECT Replace([fieldname],"-","") AS Expr1
FROM tablename
WHERE (((Replace([fieldname],"-","")) Like "%xyz%"));
于 2013-03-23T03:02:24.240 に答える