当前位置: 首页 > 面试题库 >

SQL:搜索/替换,但仅在记录中首次出现值时

姚烨
2023-03-14
问题内容

我在post_content列中有html内容。

我想搜索A并将其替换为B,但只有A第一次出现在记录中,因为它可能出现多次。

以下查询显然会将A的所有实例替换为B

UPDATE wp_posts SET post_content = REPLACE (post_content, 'A', 'B');


问题答案:

这实际上应该是您在MySQL中想要的:

UPDATE wp_post
SET post_content = CONCAT(REPLACE(LEFT(post_content, INSTR(post_content, 'A')), 'A', 'B'), SUBSTRING(post_content, INSTR(post_content, 'A') + 1));

它比我之前的答案稍微复杂-
您需要找到’A’的第一个实例(使用INSTR函数),然后结合使用LEFT和REPLACE来替换该实例,而不是使用SUBSTRING和INSTR来找到相同的实例您要替换的’A’并使用上一个字符串对其进行CONCAT。

请参阅下面的测试:

SET @string = 'this is A string with A replace and An Answer';
SELECT @string as actual_string
, CONCAT(REPLACE(LEFT(@string, INSTR(@string, 'A')), 'A', 'B'), SUBSTRING(@string, INSTR(@string, 'A') + 1)) as new_string;

产生:

actual_string                                  new_string
---------------------------------------------  ---------------------------------------------
this is A string with A replace and An Answer  this is B string with A replace and An Answer


 类似资料:
  • 问题内容: 诚然,对于SQL命令,我是一个菜鸟。黑客在我的一个WordPress网站上的每个帖子和页面的末尾插入了一个脚本标签,我试图在“ wp_posts”表中进行查找和替换,但是当我运行“模拟查询。这是我所拥有的: 无论我在第一组“查找”引号中添加了什么内容,即使是像“ hcifx”一样简单的东西,而不是所显示的整个脚本标签,我都会收到错误消息。有什么想法我要去哪里吗? 问题答案: 原来,该错

  • 问题内容: 抱歉,没有描述的标题。我们继续进行编辑。 我有一张桌子: 每天都有一个条目,但是费率很少变化。我可以编写一个仅返回发生汇率变化的行的SQL查询吗?我正在使用SQLServer 问题答案: 如果我没看错,您不是要查找经过修改的行,而是要查找价格比前一天有所变化的行。此查询或类似的查询应该执行以下操作:

  • 问题内容: 我正在使用swing和awt库以Java编写通讯录应用程序。该应用程序由一个JList组成,该JList使用TreeSet作为abstractListModel。 TreeSet用于名为Contact的类,该类具有私有比较器类,该类根据联系人的名字对联系人进行排序。如果Contact具有与O相同的mobileNumber(当然,在转换之后),则该方法返回true。 我想在此应用程序中添

  • 按下 / 键,编辑器底部会出现 / 符号,接着输入字符串,便可以进行搜索 / 向下搜索 ? 向上搜索 n 搜索下一个 N 搜索上一个 :s/源字符串/目标字符串 将源字符串替换为目标字符串 :s/源字符串/目标字符串/g 替换当前行中所有符合条件的字符串 :行号1,行号2s/源字符串/目标字符串/g 在指定行中进行替换 :%s/源字符串/目标字符串/g 全文替换

  • 问题内容: 我在numpy中有一个1D数组,我想在值超过numpy数组中的值的位置找到索引的位置。 例如 查找超出值的位置。 问题答案: 这有点快(看起来更好) 因为将在第一个位置停止(“如果多次出现最大值,则返回对应于第一个出现的索引。”)并且不会保存其他列表。

  • 我有一个包含和列的表,想知道如何返回一个列,该列显示在当前出现之前出现了多少次。 我已尝试计数(作业编号),但我不知道如何将其设置为仅计数当前报告日期之前的事件。 到目前为止,我不得不将数据导出到excel中,并为报告日期执行一个Countifs 请帮忙!:)