2011-12-07 5 views
0

データベースにウェブサイトのURLの列があり、さまざまな種類の結果があります。いくつかはwww、http://といくつかはありません。ただdomain.com形式ですべてのドメインを置き換えMySQLのウェブサイトのフィールドにhttp://とwwwを置き換えるクエリ

  • は、私は本当に私が実行できるクエリがあり、フィールドをクリーンアップする必要があります。したがって、wwwまたはhttp://のものをすべて削除してください

  • 「N/A」などのような無効な書式のフィールドがある場合、「。私はそれを空にする必要があります。

もちろん、私は今から自動的にそれを削除するようにPHPコードを更新します。しかし、現在のエントリについては、それらをきれいにする必要があります。

+5

'www.example.com'と' example.com'は異なるIPアドレスに解決することができ、異なるホスト名であり、で手渡しすることができます同じIPに解決されたとしても、異なる仮想ホスト(HTTP経由)それらが同じであると仮定することは賢明ではない。 – Quentin

答えて

3

REPLACE機能を使用して、最初のポイントを達成することができます。これについてのその他の回答を参照してください。しかし、私は真剣にエントリにwwwを残すことを検討します。最初のコメントが指摘するように、実際の違いがあるからです。たとえば、www2.domain.comのようなURLが見つからないこともあります。あなたのアプリケーションにそれらを表示したい場合は、単にテキストプレゼンテーション(最初の '。'の後に部分文字列を付けることによって)から削除し、hrefを一貫したままにしておくことができます(リンクとして表示されている場合)。

2番目のポイントは、INSTR関数またはLOCATE関数を使用して達成できます。

単に:

UPDATE table SET url = 'N/A' WHERE LOCATE('.', url) = 0 

両方の機能詳細についてはこちらをご覧くださいhere

+0

のようなもののエントリを壊すでしょう、完璧に働いてくれてありがとう! – Drew

1
UPDATE table SET column = REPLACE(column, 'http://', ''); 


UPDATE table SET column = REPLACE(column, 'www.', ''); 
+4

これは[http://no-www.org/](http://no-www.org/) –

関連する問題