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
:
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
以检查是否需要更新。
我的数据库中有一个名为 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
:
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
以检查是否需要更新。