タイトルは少し混乱しているかもしれませんが、ここで明確にすることができます。
mysql の LIKE を使用して、 : で囲まれている値、または一方の側にある場合もあれば、どちらでもない場合もある値に一致させようとしています。私はワイルドカード % を知っていますが、それはすべてを選択するので、動作する _ を見つけましたが、常にその単一の文字を選択します。
まだ混乱していますか?これが例です。
テーブル「que」に「name」という列があり、列「name」に「sdfgsdfgsdfg:jimmy:asfds」の値があるとします。「:jimmy:」を選択したいのですが、代わりに値が「 sdfgsdfgsdfg:jimmy' :jimmy のみを選択したい。
もう一つの例。
これを正規表現で達成するには、 (:?)jimmy(:?) のようになります。
目的は何ですか?
その値から jimmy を削除し、に置き換えたい: 複数の名前を 1 つの列に格納しようとしており、その 1 人を削除する必要があります。
これまでのところ、次のようなものがあります。
UPDATE `que` SET `name`= CASE WHEN `name` LIKE '%jimmy%' THEN replace(`name`, '%jimmy%', ':') ELSE `name` end WHERE 1