Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql删除最后一个字符是字符,如果其编号为_Mysql - Fatal编程技术网

mysql删除最后一个字符是字符,如果其编号为

mysql删除最后一个字符是字符,如果其编号为,mysql,Mysql,从select语句中,在一个字段中,我要删除的最后一个字符是character,如果它是数字的话。MySQL中有字符串函数吗 对于这两个SQL,我想要 试验 作为输出 select 'test1'; select 'test'; 这是一个指针: 在两个查询之间使用并集 在第一个字段中,使用REGEX,或者获取字段的substr,其中最后一个字符的另一个substr是一个数字 然后合并最后一个字符的substr不是数字的文本字段。您可能希望在MySQL中使用正则表达式。这个包裹可能对你有帮助。但

从select语句中,在一个字段中,我要删除的最后一个字符是character,如果它是数字的话。MySQL中有字符串函数吗

对于这两个SQL,我想要

试验

作为输出

select 'test1';
select 'test';
这是一个指针:

在两个查询之间使用并集

在第一个字段中,使用REGEX,或者获取字段的substr,其中最后一个字符的另一个substr是一个数字


然后合并最后一个字符的substr不是数字的文本字段。

您可能希望在MySQL中使用正则表达式。这个包裹可能对你有帮助。但是,我不建议在MySQL语句中执行此操作,因为它可能会很慢。最好在获取编程语言中的值后再执行此操作。

要删除最后一个数字字符,不使用正则表达式的一种方法是使用

select if( right(yourfield,1) = 0 && right(yourfield,1) != '0', 
           yourfield, 
           left(yourfield, length(yourfield) - 1))
from yourtable;
要替换所有尾随的数值,可以使用
反向

select if( cast(reverse(yourfield) as signed) = 0 && right(yourfield,1) != '0', 
           yourfield, 
           left(yourfield, length(yourfield) - length((reverse(yourfield) + 0))))
from yourtable;

在MySQL中将字段强制转换为整数/有符号时,它将强制转换所有数字字符,直到第一个非数字字符——从而使
反向
工作。如果最后一个字符不是数字,则结果为0


使用上面的
IF
检查,如果最后一个字符不是数字,则打印原始值,否则打印除最后一个字符以外的所有字符。

另一种方法是使用
REGEXP

SET @val = 'test12';
SELECT CONCAT(LEFT(@val, CHAR_LENGTH(@val) - 1), 
              IF(RIGHT(@val, 1) REGEXP '[0-9]' = 0, RIGHT(@val, 1), ''))

您是否有机会拥有这样的价值观
test12
test123
或直到只有1个数字?我只想删除最后一个字符,对于test123,我想要test12