mysqli搜索并替换为带引号的字体名称

yrdbyhpb  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(369)

在建立我的网站时,我最初使用verdana字体很多。我现在希望浏览mysql数据库并更改以下所有示例:
字体系列:verdana;

字体系列:“open sans”,sans-serif;
但当我最初在phpmyadmin面板中尝试搜索和替换功能时,系统对引用的“opensans”犹豫不决。在runsqlquery/querys窗口中输入mysql命令时,我也有类似的React。
我环顾了stackoverflow站点,看到一些引用可能在引号前使用\的内容,但它似乎并不适用于我尝试进行搜索和替换的情况。
任何关于mysql命令在这种情况下需要做什么的提示。。
提前谢谢

nnvyjq4y

nnvyjq4y1#

先把它写成select语句。我们可以使用mysql REPLACE 功能。https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace
例如

SELECT t.mycol AS oldval
     , REPLACE(t.mycol,'font-family: Verdana;','font-family: ''Open Sans'', sans-serif;') AS newval 
--                                             ^             ^^         ^^             ^
  FROM mytable t 
 WHERE t.mycol LIKE '%font-family: Verdana;%'

请注意,字符串文本中的单引号字符可以由两个单引号字符指定。
作为示范,请考虑:

SELECT 'It''s good' AS foo 
 --     ^  ^^      ^

一旦我们有了一个经过测试和验证的newval表达式,我们就可以在 UPDATE 陈述

UPDATE mytable t
   SET t.mycol = REPLACE(t.mycol,'font-family: Verdana;','font-family: ''Open Sans'', sans-serif;') 
 WHERE t.mycol LIKE '%font-family: Verdana;%'

请注意,这将只替换中第一次出现的字符串 mycol . 随后的执行将找到搜索字符串的下一个匹配项,并替换它。
还要注意的是 REPLACE 执行区分大小写的匹配。

相关问题