• ベストアンサー

SQL文にて・・・

質問があります。PostgreSQLです。 テーブル(test_tbl)があるとします。 テーブル構成は --------------------------- id ===== char(16) [英数文字格納] point ==== int2 add_date ==== timestamp --------------------------- このテーブルから idが2文字目から'di6ek68dh5ls7g'のレコードを取得したいと考えています。 レコード数がかなりおおいので パフォーマンスを重視したいのですが、 検索SQLがわかりません。 select * from test_tbl where id like '%di6ek68dh5ls7g'だとでると おもうのですが、 これ以上にパフォーマンスがあがる SQLがわかる方お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SUBSTRING関数ですかねぇ。 SUBSTRING(a,b,c) aの文字列の、b文字目からc文字分抽出します。 cを省略すると、最後までになります。 今回の場合は SELECT * FROM test_tbl WHERE SUBSTRING(id,2) = 'di6ek68dh5ls7g' likeはパフォーマンス低下につながりますので、 なるべく使わないよう頑張りましょう~ # OracleならSUBSTR関数、AccessだとMID関数です。

関連するQ&A