質問

テキストフィールドを持つ1列のデータベースを持っています。特定の部分文字列を持つ新しい列を見つけてマウントする必要があります。私の英語は良くないので、私は以下に説明しようとします。

1フィールドの例:

Lorem Ipsum Dolor Sit Set Site Amet、Pescentuer Adipiscing Elit、SED Diam Nonummy Nibh Euismod Tincidunt Ut Laoreet Dolore Magna Aliquam Erat ボランタット。 UT WISI ENIM AD Minim Veniam、Quis Nostrud Creatiation Ullamcorper Suscipit Lobortis Nisl UT Aliquip EX EA Commodoの結果。 Velit Esseの中のHendReritのDuis Autem Vel Eum Iriure Dolor Molestieの結果、Vel Illum Dolore Eu Feugiat Nulla Facilisis xxxx:yyyy Vero Eros et Accupsan et Iusto Odio Dignissim Qui Blandit Praesent Luptatum ZZRIE DELENIT AUGUE DUIS DOLORE TE Feugait ヌラ・ファクチリジ。 NAM LIBERの一時Cum Soluta Nobis Eleifendオプション Congue Nihil ImpedietドームID Quod Mazim Placerat Facers 鼻。標高非居住CLARITATEM INSITAM。 IISのEST USUSレジェンティス Qui Facit Eorum Claritatem。デモVerunt Lectoresを調査します Legere Me Lius Quod II Legunt Saepius。 Claritas Estiam Processus Dynamicus、Qui Sequitur Mutationem Consuetudium Lectumium。ミラムエストリー NOTAはQuam Littera Gothica、Quam Nunc Putamus Parum Claram、 Saisula Quarta Quarta Quartaのヒューマタチス系 Quinta Decima。 Eodem Modo Typi、Qui Nunc Nobis VideNTUR Parum Clari、Futurumでのおかしな。

yyyyyの後に来るxxxx :とテキスト内の変数の位置を見つけて抽出する必要があります。これまでのところ、私はこれを試してみました:

SELECT 
 SUBSTRING_INDEX(
 RIGHT(description, 
 GREATEST(LOCATE('xxxx :', description),
 LOCATE('xxxx :', description))-1), ' ', -1)
FROM wwwww
.

私はそれを解決する方法であるかもしれないことを知っていますが、私はこれを正しくすることはできません。 (これはすでに:href="htps://stackoverflow.com/questions/17911334/1ulurn-sql-using-locate-and-substring"> MySQLからの特定のテキストを返すLOCATEとSUBSTRING を使用する

PS:「XXXX:」常に同じ... YYYYYは変数値

を持っています

役に立ちましたか?

解決

これを試してみてください

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description,'XXXX : ',-1),' ',1) from wwwww
.

これは sqlfiddle

なぜそれが機能していないのかわからないこのバリエーションを試してみてくださいこの機能があるかどうかを確認

SELECT SUBSTRING_INDEX(RIGHT(post_content,LENGTH(post_content) - (LOCATE('XXXX : ',post_content)+6)),' ',1) as var from wp_posts
.

他のヒント

phpおよび正規表現を使用しているテキストのブロック内のxxxx ::の周囲のスペースのない場合は、一般的な場合)を見つけるために

$subject = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, vel illum dolore eu feugiat nulla facilisis at XXXX : yyyyy vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.";

# Case insensitive match.
$pattern = '/XXXX\s?:\s?(\w+)/i';

# If `XXXX` really has to be all caps, remove the `i` flag, like so:
#$pattern = '/XXXX\s?:\s?(\w+)/';

preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches[1]);

$matched_text = $matches[1][0];
echo $matched_text;

$match_position = $matches[1][1];
echo $match_position;
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top