gpt4 book ai didi

mysql - 使用 mysql 和正则表达式模式转换和提取行

转载 作者:行者123 更新时间:2023-11-29 07:21:17 32 4
gpt4 key购买 nike

如何从数据库中提取转换后的值?

SELECT name FROM clients LIMIT 1;

它将列出:“13's Automotors”

但我想显示“13SAUTOMOTORS”,只列出没有空格的字母和数字。

Server type: Percona Server Server version: 5.6.40-84.0-log - Percona Server (GPL), Release 84.0, Revision 47234b3 Protocol version: 10

最佳答案

较新的版本(MySQL 8 和 MariaDB 10+)支持 REGEXP_REPLACE() 函数。

SELECT regexp_replace(name, '[^\\d\\w]', '') as converted_name
FROM clients

将用空字符串替换所有非数字和非单词字符。

如果您需要大写的结果,请使用 UPPER()

SELECT upper(regexp_replace(name, '[^\\d\\w]', '')) as converted_name
FROM clients

db<>fiddle demo

如果您的版本不支持 REGEXP_REPLACE(),请考虑以您的应用程序语言进行转换。由于您已使用 mysqli 标记您的问题,因此我假设您使用的是 PHP。然后你可以使用pred_replace()strtoupper() :

$row['converted_name'] = preg_replace('/[^\\d\\w]/', '', $row['name']);
$row['converted_name'] = strtoupper($row['converted_name']);

rextester demo

关于mysql - 使用 mysql 和正则表达式模式转换和提取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56224568/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com