gpt4 book ai didi

MySQL,根据另一列填充列值,同时将破折号分隔的大写字母转换为一些用户友好的单词

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:51 25 4
gpt4 key购买 nike

这是情况:

  • 有一个包含 2 列的表格,codename
  • 姓名列全部为空,
  • 代码列全部由大写破折号分隔,即PUBLIC-CLASSSTATIC-PUBLIC-CLASS
  • 我需要一个查询来更新名称,并将代码值转换为用户友好的格式,这就是 fiIi 可以使用类似正则表达式的模式来区分这种情况
UPDATE tableName
SET
name = CONCAT(
UPPER(SUBSTR(REPLACE(code, '-', ' '), 1, 1)),
LCASE(SUBSTR(REPLACE(code, '-', ' '), 2))
)
WHERE
name = '';

感谢任何帮助:)


这是一个之前:

| code                | name                |
+=====================+=====================+
| PUBLIC-CLASS | |
| PRIVATE-CLASS | Already has a name |
| STATIC-PUBLIC-CLASS | |
| PHP-PUBLIC-LASS | |
| HTTP-REQUEST | |

及之后:

| code                | name                |
+=====================+=====================+
| PUBLIC-CLASS | Public class |
| PRIVATE-CLASS | Already has a name |
| STATIC-PUBLIC-CLASS | Static public class |
| PHP-PUBLIC-LASS | PHP Public class |
| HTTP-REQUEST | HTTP Request |

根据@Abecee 请求的示例:)

最佳答案

对于目前显示的数据,您可以尝试一下:

UPDATE SomeTable
SET name = CASE
FIELD(SUBSTR(code, 1, INSTR(code, '-') - 1), 'HTTP', 'PHP')
WHEN 0 THEN CONCAT(SUBSTR(code, 1, 1),
LCASE(SUBSTR(REPLACE(code, '-', ' '), 2))
)
ELSE CONCAT(SUBSTR(code, 1, INSTR(code, '-') - 1),
' ',
SUBSTR(SUBSTR(code, INSTR(code, '-') + 1), 1, 1),
LCASE(SUBSTR(REPLACE(SUBSTR(code, INSTR(code, '-') + 1), '-', ' '), 2))
)
END
WHERE name IS NULL
;

不需要正则表达式来分隔大小写。只需继续添加表达式以保留(在字符串的开头)到 FIELD(SUBSTR(code, 1, INSTR(code, '-') - 1), 'HTTP', 'PHP')。 (如果需要/需要,这肯定可以通过数据库中的表来处理。)
到目前为止,MySQL 正则表达式不支持对字符串的更改。

查看实际效果:SQL Fiddle .

请评论,如果这需要调整/进一步的细节。

关于MySQL,根据另一列填充列值,同时将破折号分隔的大写字母转换为一些用户友好的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296719/

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