20

重複の可能性:
SQL UPDATE の str_replace?
mysqlで文字列の一部を削除するには?
文字列のSQL検索と置換

たとえば、Web サイトの URL のリストを含むデータベース テーブルがあり、それらからすべてのandhttp://website.com/を削除したいと考えています。列を削除するために列で実行できる単純な SQL ステートメントですか?http://https://

あちこち探しましたが、必要なものが見つかりません。REPLACE と UPDATE の両方を使用する必要があると思いますが、苦労しています。

これまでのところ、私は持っています:

UPDATE list
SET    website
WHERE  website LIKE 'http://%';

あれは正しいですか?私はMySQLを使用しており、テーブルはリストで、列はウェブサイトであり、削除したいので、次のhttp://ようなURLは次のようにhttp://website.com/なります:website.com

編集:末尾のスラッシュも削除することは可能ですか?

4

3 に答える 3

43

機能をご覧くださいREPLACE。http と https の両方を削除するには、2 回使用する必要があります。

UPDATE    list
SET       website = REPLACE(REPLACE(website, 'https://', ''), 'http://', '')
WHERE     website like 'https://%' 
  OR      website like 'http://%'

RIGHT末尾のスラッシュを処理するには、、、LEFTおよびLENGTH関数を使用できます。

UPDATE    list
SET       website = LEFT(website, LENGTH(website) - 1)
WHERE     RIGHT(website, 1) = '/'

役に立つと思われるドキュメントを次に示します。 MySQL 文字列関数

于 2012-08-19T21:31:49.100 に答える
14

文字列が存在する場合は、単に置換しないのはなぜですか。

UPDATE list
SET    website = Replace(website, 'http://', '')
于 2012-08-19T21:28:17.453 に答える
5
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’) where CONDITION
于 2012-08-19T21:29:11.810 に答える