【发布时间】:2015-12-02 13:47:59
【问题描述】:
我有一个 VARCHAR 变量,我想删除与表中的列匹配的所有子字符串。到目前为止,我已经构建了一个查询,该查询将使用以下查询返回作为我的变量的子字符串的所有行:
SET @myval = '%For Her, Shoes,, Sizes 14-24%';
SELECT strReplace
FROM tbl_StringsToReplace
WHERE @myval LIKE CONCAT('%', strReplace, '%');
但我在编写将替换多个值的 REPLACE 查询时遇到问题。我正在尝试编写如下内容:
SET @myval = REPLACE((SELECT strReplace
FROM tbl_StringsToReplace
WHERE @myval LIKE CONCAT('%', strReplace, '%')), '', @myval);
但我得到了错误:
错误代码:1242。子查询返回多于 1 行
我很想在纯 SQL 中实现这一点。 Euther方式,任何建议将不胜感激。谢谢
【问题讨论】:
-
你能提供你的表 tbl_StringsToReplace 定义和一些示例数据吗?
-
当然,所以 tbl_StringsToReplace 有一列 strReplace,其值包括 'Shoes, ' 'For Him, ' 'For Her, '