如果我的表中有一个列是字符串列表,那么如何在列表中的特定项之后将新条目附加到表中的列表中(对于所有行)?
for example:
apple, orange, peach, banana,....
所以这里我要说我想在条目lemon
之后将peach
追加到每一行。我知道条目“桃子”出现在每一行中它只出现一次(列表中桃子的位置可能不同,列表中其他项目的出现可能会有所不同)。提前致谢!
我尝试过(但没有奏效)
UPDATE TABLE_NAME
concat (COLUMN_NAME, 'lemon')
where COLUMN_NAME like '%peach,%';
答案 0 :(得分:5)
UPDATE TABLE_NAME
set COLUMN_NAME= replace(COLUMN_NAME, 'peach','peach,lemon')
where COLUMN_NAME like '%peach,%';
答案 1 :(得分:1)
您可以尝试以下
create table test(test VARCHAR(255));
Query OK, 0 rows affected (0.26 sec)
INSERT INTO test VALUES('apple, orange, peach, banana,....');
Query OK, 1 row affected (0.00 sec)
SELECT * FROM test;
+-----------------------------------+
| test |
+-----------------------------------+
| apple, orange, peach, banana,.... |
+-----------------------------------+
1 row in set (0.00 sec)
UPDATE test SET test = REPLACE(test,'peach,','peach,lemon,') WHERE test like '%peach,%';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM test;
+-----------------------------------------+
| test |
+-----------------------------------------+
| apple, orange, peach,lemon, banana,.... |
+-----------------------------------------+
1 row in set (0.00 sec)
答案 2 :(得分:1)
如果字符串'peach'
没有显示为“列表”中任何其他值的一部分(也就是说,例如,'impeach'
或列表中出现的任何术语都不存在'peachtree'
,然后您可以使用REPLACE
字符串函数查找'peach'
的匹配项,并将其替换为'peach,lemon'
例如:
UPDATE mytable
SET mycol = REPLACE(mycol, 'peach', 'peach,lemon')
在更一般的情况下,您可能无法保证'peach'
不是列表中其他术语的一部分,这样做的表达会更复杂。
答案 3 :(得分:1)
update tblname
set clm_name= replace(clm_name,'peach','peach,lemon')
where clm_name like '%peach%';