0

「名前」と呼ばれる VARCHAR フィールドと数千行の MySQL テーブルがあります。各行は次のようにフォーマットされます。

「いくつかのテキスト <1000 - 2000>」

「<1000 - 2000>」の部分を削除して、「Hello world」のテキストだけを残します。テキストと数字は行ごとに異なります。これはクエリでどのように行うことができますか? ある種の正規表現を想定しています。

どんな助けでも大歓迎です

4

3 に答える 3

0

これを試して:

set @txt='Some text <1000 - 2000>';

select left(@txt,locate('<',@txt)-1) as text


SQlフィドルデモ

于 2012-11-17T03:41:14.540 に答える
0

INSTRとを使用しREVERSEて文字の位置を取得し、<インデックスで削除します。

UPDATE `table` SET `name` = SUBSTRING( `name`, 0, INSTR( REVERSE( `name` ), `<` ) )
于 2012-11-17T02:19:41.657 に答える
0

これを見てください、それはあなたが望むものかもしれませんhttps://launchpad.net/mysql-udf-regexp

よろしく、 ハイアワサ

于 2012-11-17T02:20:05.797 に答える