使用mysql查询获取字符串的最后5个字符

时间:2012-04-13 02:44:01

标签: mysql varchar

我必须使用mysql获取最后5个数字。

我的值类似于YOT-A78514LOP-C4521 ...

我只得到最后五个字符。如何在查询中执行此操作?

6 个答案:

答案 0 :(得分:91)

您可以使用RIGHT(str,len)功能执行此操作。从字符串 str

返回最右边的 len 字符

如下所示:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename

答案 1 :(得分:14)

“正确” - 函数是这样的,使用子字符串可能会导致一个不容易注意到的问题:

mysql> select right('hello', 6);
+-------------------+
| right('hello', 6) |
+-------------------+
| hello             |
+-------------------+
1 row in set (0.00 sec)

mysql> select substring('hello', -6);
+------------------------+
| substring('hello', -6) |
+------------------------+
|                        |
+------------------------+
1 row in set (0.00 sec)

但是如果你没有尝试超越字符串的开头,那么子字符串当然可以正常工作:

mysql> select substring('hello', -5);
+------------------------+
| substring('hello', -5) |
+------------------------+
| hello                  |
+------------------------+
1 row in set (0.00 sec)

答案 2 :(得分:5)

Right是一个不错的选择,但你也可以使用substring这样 -

SELECT Substring(columnname,-5) as value FROM table_name

答案 3 :(得分:1)

SELECT row_id
  FROM column_name
WHERE column_value LIKE '%12345';

当“12345”被认为是“column_name”中“column_value”的尾随后缀时,这将返回“row_id”。

答案 4 :(得分:1)

如果你想在一个角色后获得一个动态数量的正确字符:

SELECT TRIM( 
    RIGHT(
        database.table.field, 
        (LENGTH(database.table.field) - LOCATE('-',database.table.field)) 
    )
)
FROM database.table;

答案 5 :(得分:0)

SELECT SUBSTR('Stringname', -5) AS Extractstring;

相关问题