mysql - MySQL 中相同值的多个情况的 SELECT REPLACE

标签 mysql select replace

我知道 SELECT REPLACE 可以替换字符串的一种情况,但我试图用同一字符串替换多种情况,但我还没有找到如何执行此操作的示例。

我有一张 table :

+--------------+
| station_name |
+--------------+
| WABC-FM      |
| WXYZ-G2      |
| WWWW-H2      |
| WWAS-A2      |
| WFRE-A3      |
| WRES-AM      |
+--------------+

我想要的有点复杂。我将使用普通的 SELECT REPLACE 来尝试解释我正在寻找的内容。

基本上,G2 或 H2 的每个实例都需要替换为 FM,A2 或 A3 的每个实例都需要替换为 AM。

所以类似 SELECT REPLACE(station_name, ['G2', 'H2'], 'FM') 与另一个 SELECT REPLACE(station_name, ['A2', 'A3') 结合'],'上午')

最佳答案

您可以将四个调用链接到REPLACE:

SELECT
    REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(station_name, 'G2', 'FM'), 'H2', 'FM'),
                    'A2', 'AM'), 'A3', 'AM')
FROM yourTable;

如果您使用的是 MySQL 8+,则可以使用 REGEXP_REPLACE,这只需要两次调用,而不是四次:

SELECT
    REGEXP_REPLACE(
        REGEXP_REPLACE(station_name, '[GH]2', 'FM'), 'A[23]', 'AM')
FROM yourTable;

关于mysql - MySQL 中相同值的多个情况的 SELECT REPLACE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54877699/

相关文章:

mysql - 选择合并两个表,每个表之间有一个表

javascript - JavaScript 函数中的正则表达式问题 - 不替换任何内容

python - 替换数据框中的重复值

php 更新功能不起作用

sql - 单个查询中的 Postgresql 多个连接,其中连接的外键不存在于所有表中

mysql - 无法创建返回某些值的存储例程

mysql - 选择包含一列中的值的多行

javascript .replace 和 jQuery .map

php - 使用pdo在两个mysql表中插入一条记录

MySQL 连接两个潜在的字段名称