私は、次のような文字列を含む列があります:私は返す列からアポストロフィー内にあるデータのみを選択する。
Core Authoring Files
への私の選択は唯一のアポストロフィ内にあるデータを選択する方法はありたい
Approved By Smith, John For 'Core Authoring Files'
を?
私は、次のような文字列を含む列があります:私は返す列からアポストロフィー内にあるデータのみを選択する。
Core Authoring Files
への私の選択は唯一のアポストロフィ内にあるデータを選択する方法はありたい
Approved By Smith, John For 'Core Authoring Files'
を?
これを試してください。ただし、部分文字列はデータベースシステムによって多少異なりますので、使用しているサーバーによってこの部分を少し変更する必要があります。
select
substring(column, charindex("'", column, 0) as begin), charindex("'", column, begin + 1) - begin)) as thestring
from yourTable;
これが機能する方法は、最初の引用符の後の文字で始まると、それらを差し引い文字列に二重引用符を見つけ、文字列の最初の引用文字の位置を見つけるために、CHARINDEX関数を使用することですあなたが抽出したい文字列の長さを取得する位置。これらの2つの数値は、部分文字列関数(column、startposition、length)を得るために部分文字列関数に渡されます。
希望これは、私はエスケープ引用符は、データベースに格納できるようにすることからあなたを説得するために第2の利用したいと思い
EDIT
に役立ちます。これは、SQLインジェクション攻撃を要請している状況です。あなたがよく知らない人は、このパスをあまりにも遠くに進める前にSQLインジェクションを調べてください。
PostgreSQLでは、これはregexp_replace文字列演算子を使用すると非常に簡単です。
SELECT * FROM (
SELECT
regexp_replace(title, E'.*\'\(.*\)\'.*', E'\\1') AS result
FROM
items) x
WHERE
result IS NOT null;
使用しているデータベースはどれですか。おそらくPHPのようなプログラミング言語を使用して内側の文字列を取得する必要がありますが、特定のデータベースのカスタムライブラリが役立つかもしれません。あるいは、db関数として実行することもできます。 –