Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL:如果字段与字符串匹配,如何替换整个字段?_Mysql_Sql_String_Oracle_Replace - Fatal编程技术网

Mysql SQL:如果字段与字符串匹配,如何替换整个字段?

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

我试图替换数据库中与某个字符串匹配的整个字段

例如: 表2所含水果

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?