11

私の「場所」テーブルには6つの列が含まれています。(ID、名前、エイリアス、エリア、X、Y)

[名前] 列のエントリの例:

Blackwood Highschool, Paris, France

Hilltop Market, Barcelona, Spain

Roundwell Plaza, Melbourne, Australia

Rurk Mount, Moscow, Russia(mountain)

History Museum, Prague, Czech Republic

Narrow River (river), Bombay, India

名前の中に「(山)」、「(川)」、「(...)」が含まれているものがあります (8 通り)。なぜこのようにテーブルが作成されたのかわかりません。このデータ用に追加の列が必要でしたが、まあ。

ロケーション名から「(...)」部分文字列だけを削除したい。私はそれを行う方法がわかりません。それは次のようなものなので、アイデアが得られます。

DELETE FROM 'Location' 
WHERE 'Name'
LIKE '%(%)%';

これにより行全体が削除されることはわかっていますが、「名前」文字列から (%) 用語を削除したいだけです。

4

4 に答える 4

0

私はあなたのためにこの例を作りました:

set @name = "Rurk Mount, Moscow, Russia(mountain)";

set @fir = locate("(",@name);
set @las = locate(")",@name);

set @lef = left(@name,@fir-1);

set @word = substr(@name,@fir+1,@las-@fir-1);

select @fir,@las,@lef,@word,concat(@lef,' ',@word);

このようにして、タスクを達成する方法を確認できます。

于 2013-06-21T20:40:24.760 に答える