0

name_データベース内の各名前の一部を削除しようとしていますname_が、誤って db に挿入され、現在 30 個のオブジェクト名になっています。データベースから手動で削除すると、時間がかかります。

一例は次のとおりname_johnです。である必要がありますjohn

name_SQLステートメントを使用して、db内のすべてのオブジェクトのすべての名前からこれを削除するにはどうすればよいですか?

4

2 に答える 2

3

列の値の場合は、更新ステートメントで実行できます。

UPDATE table_reference
SET column_reference = SUBSTRING(column_reference, 6)
WHERE column_reference LIKE 'name\_%' ESCAPE '\'
于 2013-05-13T20:50:52.727 に答える
1

これが変更する必要がある列の値に関するものである場合は、次のREPLACE()ような関数を使用できます。

UPDATE tablename
SET columnname = REPLACE(columnname, 'name_', '')
WHERE columnname LIKE '%name\_%' ESCAPE '\'
;

name_これにより、 inのすべてのエントリが削除されcolumnnameます。エントリが 1 つしかない場合 (または 1 つだけを削除する必要がある場合) で、その位置が固定されている場合は、INSERT()代わりに関数を使用できます。この関数は、その名前にもかかわらず、部分文字列を置換および削除することもできます。name_の位置が例えば先頭にある場合、これを使用する方法は次のとおりです。

UPDATE tablename
SET columnname = INSERT(columnname, 1, 5, '')
WHERE columnname LIKE 'name\_%' ESCAPE '\'
;
于 2013-05-13T21:04:31.410 に答える