从数据库列中删除逗号

时间:2016-10-28 23:12:16

标签: sql

基本上在一个表中,我想删除有人放入的metadata_value列条目中的所有逗号,其中meta_key列等于15,16或17

所以:

SELECT REPLACE(metadata_value, ',', '')
FROM project_content_to_metadata
WHERE metadata_key = '15'
AND metadata_key = '16'
AND metadata_key = '17'

但它不起作用

2 个答案:

答案 0 :(得分:3)

您的REPLACE是正确的,但请使用OR代替AND。一行不能有3个不同的值。您可以使用IN在一列上指定多个OR条件:

SELECT REPLACE(metadata_value, ',', '')
FROM project_content_to_metadata
WHERE metadata_key IN ('15','16','17')

另外,如果您的metadata_key类型为Integer,请不要在值周围使用引号,这可能是:

metadata_key IN (15,16,17)

答案 1 :(得分:1)

如果您确实要删除表格中的逗号 ,请使用update

update project_content_to_metadata
    set metadata_value =  REPLACE(metadata_value, ',', '')
    where metadata_key in (15, 16, 17);

否则卡米尔的回答是正确的。