MySQL 如何在MySQL列中左侧和中间的字符串中转义 ‘%’ 字符?

MySQL 如何在MySQL列中左侧和中间的字符串中转义 ‘%’ 字符?

在MySQL中,百分号(%)是模式匹配字符。例如,像这样的语句: SELECT * FROM mytable WHERE name LIKE 'a%' ,将会选取所有name列以字母“a”开头的行。
然而,情况却并不总是如此简单。有时我们需要在字符串中特别处理百分号字符来避免错误。本文将讲解如何在MySQL的列中左侧和中间位置转义%字符。

阅读更多:MySQL 教程

转义百分号 %

MySQL使用“\”作为转义字符。为了在MySQL中转义一个“%”字符,我们需要使用两个“%”字符,因为第一个“%”字符会被MySQL解释为模式匹配字符。

下面是一个例子,我们把所有以百分号开头的字符串中的第一个百分号转义掉。

SELECT REPLACE('%.10f,%.2f,%d','%', '%%', 1);

运行结果为 “0.10f,%.2f,%d”。此处我们用到了REPLACE函数,将所有的“%”转移到了%%中。

转义左侧百分号 %

如果需要在MySQL查询中转义左侧的百分号,我们需要使用CONCAT函数。下面的例子将会转义字符串“%abc”。注意在查询里目标字符串’%abc’的左边添加了一个转义字符’\’

SELECT * from mytable where name like concat('\%', 'abc%');

运行结果为所有名称以“%abc”开头的行。

转义字符串中的百分号 %

下面的例子将会替换所有字符串中的百分号为句号。

SELECT REPLACE(name, '%', '.') from mytable;

运行结果会返回在name列中所有的百分号都被替换为了一个句号。

结论

MySQL中,百分号字符(%)是模式匹配字符。如果需要转义百分号字符,我们需要使用两个百分号(% %),或者使用转义字符“\”。如果需要在MySQL列的左侧或中间位置转义百分号字符,我们需要使用CONCAT函数。在数据处理过程中,如有需要进行列值的转义处理,REPLACE函数可以轻松搞定。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程