単一の値だけでなく、テーブル内の列に対して最長一致のプレフィックスを実行する必要があります。単一の値には、のようなものを使用しますSELECT value, prefix as lmp FROM aTable WHERE SUBSTRING(value,1, LENGTH(prefix)) = prefix ORDER BY prefix DESC limit 1
。
問題は、多くのレコードに対して実行されている場合、テーブルスキャンを実行し、値を1つずつ取得する必要があり、クライアントとサーバー間で大量のトラフィックが発生することです。
サブクエリを含むがストアドプロシージャを含まない単一のクエリでそれを行う方法はありますか?PostgreSQL8.4を使用しています。