REPLACE
MySQLで文字列+次の文字にすることは可能ですか? アンダースコアのようなLIKE
もの。
たとえば、text
column が this:
の場合12 13 14 14_B 15 14_A
、REPLACE
すべて14_*
空文字で置き換えられたテキストは次のようになります。
12 13 14 15
MySQL で正規表現 UDF を使用してこれを行うことになります。主な成分は
これらのうち、交換が必要なものが 2 ~ 4個しかない場合は、貧乏人の作業アプローチ ( SQL Fiddle ):
SELECT *,IF(LOCATE('14_',B)+3<=Length(B),
INSERT(B,LOCATE('14_',B),4,''),B) C
FROM
(
SELECT *,IF(LOCATE('14_',A)+3<=Length(A),
INSERT(A,LOCATE('14_',A),4,''),A) B
FROM (
SELECT *,IF(LOCATE('14_',x)+3<=Length(X),
INSERT(X,LOCATE('14_',x),4,''),X) A
FROM X
) Q1
) Q2
私は3つの交換用に仕出し料理しましたが、パターンを簡単に拡張できます. 最も外側のクエリで必要なベース テーブルの列のみを含めます。