我尝试在SELECT
语句中编写一个文本转换,将变量名从camelCase转换为大写的SNAKE_CASE。我使用的是MySQL v.8.0.26。
例如:thisIsTheVar
应变为THIS_IS_THE_VAR
我遵循this answer,但解决方案中的参数被我的MySQL版本认为是无效的("g")。
SELECT UPPER(CONCAT(SUBSTRING('thisIsTheVar', 1, 1),
REGEXP_REPLACE(SUBSTRING('thisIsTheVar', 2), '([A-Z])', '_\\1')));
但这会返回:T_1_1_1_1_1_1_1_1_1_1_1
有什么明显我漏掉的吗?
1条答案
按热度按时间m4pnthwp1#
在MySQL中,使用
$1
而不是\1
作为反向引用,并且需要在要引用的模式周围加上括号。