Mysql SQL:如果字段与字符串匹配,如何替换整个字段?
我试图替换数据库中与某个字符串匹配的整个字段 例如: 表2所含水果Mysql SQL:如果字段与字符串匹配,如何替换整个字段?,mysql,sql,string,oracle,replace,Mysql,Sql,String,Oracle,Replace,我试图替换数据库中与某个字符串匹配的整个字段 例如: 表2所含水果 ID NAME --------------- 1 APPLE 2 ORANGE 3 PASSIONFRUIT 4 BANANA 5 DRAGONFRUIT 6 KIWI 7 STRAWBERRY FRUIT 现在,如果我尝试选择列名,并且如果一个字段包含字符串'FRUIT',它应该将整个字段替换为另一个字符串,如'SAMPLE' 预期结果: sel
ID NAME
---------------
1 APPLE
2 ORANGE
3 PASSIONFRUIT
4 BANANA
5 DRAGONFRUIT
6 KIWI
7 STRAWBERRY FRUIT
现在,如果我尝试选择列名,并且如果一个字段包含字符串'FRUIT',它应该将整个字段替换为另一个字符串,如'SAMPLE'
预期结果:
select NAME from TABLE_FRUITS;
将返回:
APPLE
ORANGE
SAMPLE
BANANA
SAMPLE
KIWI
SAMPLE
我不确定是否应该使用replace或substr/instr。如果您使用的是MySQL,您可以使用类似
SELECT IF(NAME LIKE '%FRUIT%', 'SAMPLE', NAME) AS NAME FROM TABLE_FRUIT
在其他类型的SQL中,可能需要使用大小写
表达式:
SELECT CASE WHEN NAME LIKE '%FRUIT%' THEN 'SAMPLE' ELSE NAME END AS NAME FROM TABLE_FRUIT
您可以使用
CASE
select case when name like '%FRUIT%' then 'sample' else name end
from table_fruit
以下情况下的用例:
select case when name like '%fruit%' then 'Sample' else name end from tablename
这是用于哪个dbms的?@jarlh问题被标记为MySQL,但我看到它也被标记为Oracle,所以我更新了答案。您使用的是MySQL还是Oracle?