我知道 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/