SQL 在 MySQL table 的列中更新 NText 的开头

SQL Update beginning of NText in a column in MySQL table

我的数据库中有一个名为 Customers 的 table,它有:

+------------+---------------+-------------------------------------------+
|Customer ID | Customer_Name | Customer_Address                          |
| 00001      | JohnD         | @ADDR;Number=21;Road=WalterRoad;@ENDADDR; |
+------------+---------------+-------------------------------------------+

属性 Customer_ID(integer)Customer_Name(nvachar)Customer_Address(ntext) 的数据类型。

我想更改 Customer_Address 中的文本。我只想更改从 Walter Road 到 Spencers Place 的道路,我想保留所有其他信息。

有办法吗?

使用REPLACE:

SqlFiddleDemo

UPDATE Customers 
SET Customer_Address = REPLACE(CAST(Customer_Address AS NVARCHAR(MAX)),'Road=WalterRoad','Road=Spencers Place')
WHERE Customer_ID = 1
  -- AND INSTR(Customer_Address, 'Road=WalterRoad') > 0;
  -- AND CHARINDEX(CAST(Customer_Address AS NVARCHAR(MAX)), 'Road=WalterRoad') > 0; -- I am not sure which RDBMS you use

您可以选择添加 INSTR 以检查是否需要更新。