删除sql上的字符



我有一个表

|约翰|罗伯特玛丽||詹姆斯|债券

我想用substr

删除前缀'J'的字符 | ohn|罗伯特玛丽||艾姆斯|债券

这是我的SQL代码,但仍然不能工作

SELECT SUBSTR(name,2) FROM table_name WHERE name LIKE 'J%'

您写的查询是"显示所有需要修改的名称",但我认为您想要的是"显示所有名称,但要遵循我希望您首先修改的特定模式的名称"。

修改结果中的数据的工作由SELECT语句负责。你在使用SUBSTR时已经触及了它。所以你想拉出所有的名字,但只改变其中的一些。对MySQL字符串操作目录的进一步研究揭示了一系列令人眼花缭乱的选项。目标是SELECT name,但如果name以'J'开头,则将其截断。">

出于教育目的,我鼓励你尝试用IF逻辑实现这个,但最终这是不必要的。

虽然最终强大的regex函数很诱人,但还有一个更简单的选项,TRIM。TRIM允许你说,"从另一个字符串的前面和/或后面剪切这个字符串。">

由于您想要所有结果,因此不再有WHERE子句,并且您的查询只是

SELECT TRIM(LEADING 'J' FROM name) FROM table_name

看那个。FROM意味着两个不同的东西。没有人说过SQL很漂亮。

如果您的实际用例比简单的TRIM所能处理的更棘手,那么有一大堆更多的函数需要仔细阅读,最终有regex。

您可以在以下链接中检查其他表单是否使用TRIM函数:

调整功能

最新更新