ファイル名を含むテーブル列があります: image1.jpg、image12.png、script.php、.htaccess、...
ファイル拡張子のみを選択する必要があります。私はそのようにしたいと思います:
SELECT DISTINCT SUBSTR(column,INSTR('.',column)+1) FROM table
ただし、私のバージョンの SQLite では INSTR はサポートされていません。
INSTR関数を使わずに実現する方法はありますか?
以下は、ファイル拡張子のみを選択するためのクエリ (テストおよび検証済み) です。ファイル名には任意の数の.
文字を含めることができます-それでも機能します
table_name から個別の replace(column_name, rtrim(column_name, replace(column_name, '.', '' ) ), '') を選択します。
column_name
ファイル名がある列の名前です(ファイル名には複数.
の 'sを含めることができます
table_name
あなたのテーブルの名前です
ltrim(X, Y)
関数を試してみてください、それはドキュメントが言うことです:
ltrim(X,Y) 関数は、Y に現れるすべての文字を X の左側から削除して形成された文字列を返します。
次のように、すべてのアルファベットを 2 番目の引数としてリストします。
SELECT ltrim(column, "abcd...xyz1234567890") From T
までのすべての文字を左から削除する必要があり.
ます。ドットなしの拡張子が必要な場合は、その上で使用SUBSTR
してください。もちろん、これは、ファイル名に複数のドットを含めることはできないことを意味します。
しかし、クエリを実行するコードで拡張子を抽出する方が簡単で安全だと思います。