2017-12-19 63 views
0

を検索する前に、フィールドの値を交換し、私はこのような何かをしたいです(秒)データベースの検索の速度を上げるために

どうすればいいですか?

これは私のために働くdid'nt:

"SELECT * FROM TheTableName WHERE REPLACE(TheFieldName, ' ', '')=test" 

エラー:未定義の関数の式

+0

ここでやっていることは、比較を開始する前に、TheTableNameのすべての行で置換操作を行います。これで検索速度は向上しません。 – DancingFool

+0

@DancingFoolあなたはvb6コードのプロセス速度がSQLエンジン内部のプロセス速度と等しいことを確信していますか? –

+0

私は再びインターネットを検索しましたが、vb6の私のadodbバージョンはsqlの置き換えコマンドをサポートしていないようです:(それは方法がないようですが、SQLコマンドの代わりにvb6でプロセスを行うことにしました: '( –

答えて

1

に 'REPLACE' replace()は、SQL Serverの(またはほとんど知られていないように私にはそう思えます他のデータベース)。しかし、自分が思っているデータベースを使用していることを確認してください。

文字列としてtestが必要なように思われるため、あなたの質問にはエラーがあります。クエリは実際に次のようになりますか。

SELECT * 
FROM TheTableName 
WHERE REPLACE(TheFieldName, ' ', '') = 'test'; 

'test'の引用符に注意してください。

+0

私は、 (Microsoft Activexデータオブジェクト2.8ライブラリ) –

+0

私はTRIMのようなものを探していますが、検索文字列内のスペースをすべて削除します –

+0

OBJRS_RV_LOCAL.Open(SQL_STRING、OBJCN、adOpenForwardOnly、adLockReadOnly、adCmdText)を呼び出すと、 –

0

これは動作するはずです。

"SELECT * FROM TheTableName WHERE rtrim(ltrim(TheFieldName))=test" 
+1

はい、これは別の質問のために働く可能性があります。 'TheFieldName'カラム内のスペースは残っています。あなたがやっているのは先頭と末尾の空白を取り除くことだけです。 –

関連する問題