2011-07-26 67 views
1

総遅い瞬間の日、私はどのような言語に基づいて異なる領域を抽出する必要がMySQLデータベースのフィールドから選択される抽出文字列

例:

<!--:en-->Overview<!--:--><!--:es-->Overview<!--:--><!--:fr-->Présentation<!--:--><!--:ar-->نظرة عامة<!--:--> 

ので、私の言語がある場合フランス語の例、私は<!--:fr--><!--:-->

の間に部分が欲しいですか?

答えて

4

文字列処理はMySQLの最も強力な部分ではありません。しかし、ここで1つのアイデアです:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, '<!--:fr-->', -1), '<!--:-->', 1) FROM table_name 
+0

私にそれを打つ! +1 – AlienWebguy

0

簡単な方法は、部分文字列を使用することです。最初に文字列の言語の索引を見つけることができます。その後、終了マーカー()のインデックスを見つけ、必要な値である中間にあるものを抽出します。

さらに詳しい方法は正規表現を使用することです。実装は、コーディングしている言語によって異なります。

+0

これは結果のコードベースにおよそ800万フックを持っているワードプレスのサイトからですので、残念ながら、私は、SQL側でこれを実行する必要があるが、私は、SQLを変更考え出しPHPのコードはこれ以上問題ありません – CJB

+1

MySQLは部分文字列と正規表現の機能を持っています – Jacob

+0

@cularis MySQLのRegexpsはTRUEまたはFALSEのみを返します。 – Karolis

関連する問題