Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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_Replace_Cdata - Fatal编程技术网

Mysql SQL选择值,然后在子查询中使用以替换字符串

Mysql SQL选择值,然后在子查询中使用以替换字符串,mysql,sql,replace,cdata,Mysql,Sql,Replace,Cdata,在我的sql表中,我有以下几个值: <![CDATA[9435547092]]> <![CDATA[Company Name]]> 大多数行都有CDATA包装,我想从所有文件中删除它,所以我认为子查询应该是这样的 从属性中选择值,其中的值(如“%)是否符合您的要求 select replace(replace(value, '<![CDATA[', ''), ']]>', '') 选择替换(替换(值,,“”) 请注意,如果您的实际值具有“wrapps

在我的sql表中,我有以下几个值:

<![CDATA[9435547092]]>
<![CDATA[Company Name]]>

大多数行都有CDATA包装,我想从所有文件中删除它,所以我认为子查询应该是这样的


从属性中选择值,其中的值(如“%)是否符合您的要求

select replace(replace(value, '<![CDATA[', ''), ']]>', '')
选择替换(替换(值,,“”)
请注意,如果您的实际值具有“wrapps”,则这可能会影响该值。我认为更通用的方法是:

select (case when value like '<![CDATA[%]]>'
             then substr(value, 9, length(value) - 3)
             else value
        end)
选择(值为“”时的情况)
然后是substr(值,9,长度(值)-3)
其他价值
(完)

只需在正确的字符串中为obatin选择替换即可

    SELECT replace(value , "<![CDATA[", '')
    FROM attributes 
    WHERE value LIKE "%<![CDATA[%";
SELECT replace(value),
SELECT right(value,length(value)-locate(value,']])+2
从属性
其中的值如“%请尝试此

SELECT select SUBSTRING(value,10,LEN(value)-12) 
FROM attributes
WHERE value like '<![CDATA[%'
选择子字符串(值,10,LEN(值)-12)
从属性

在像“那样的值不起作用的地方,它说行受到了影响,但看起来不是这样。是的,我确实需要一个更通用的查询,因为包装在cdata中的查询可以是任何东西。所以我有一个名为attributes的表,它有一个值列,很多值都包装在
中。有什么想法为什么上面的查询不起作用吗?这个stmt没有提供数据上的任何更改—它会给您一个您想要的输出。您的表有多大?它有多少行(多行或少行)?@001221…如果您想更改数据,您应该使用
update
。我建议您使用第二个示例中的逻辑进行更改。我发现了一个错误;
您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以获取在“选择替换(值)”附近使用的正确语法谢谢,这样“知道”会显示如下值;
VALUE]]>
但是当我在数据库行中预览此值时,它没有将其保存为新值。我是否也需要运行更新命令?。我还添加了另一个关于rigth string的建议…希望有用
select  right(value, length(value) - locate(value,']]')+2)
from attributes
WHERE value LIKE "%<![CDATA[%";  


UPDATE attributes
set value =  right(value, length(value) - locate(value,']]')+2)
WHERE value LIKE "%<![CDATA[%";  
SELECT select SUBSTRING(value,10,LEN(value)-12) 
FROM attributes
WHERE value like '<![CDATA[%'