我必须使用 mysql 获取最后 5 个数字。
我的价值观是YOT-A78514
,LOP-C4521
...
我只需要最后五个 char 。如何在查询中执行此操作?
您可以使用RIGHT(str,len)函数执行此操作。从字符串str返回最右边的len 个字符,
如下所示:
SELECT RIGHT(columnname,5) as yourvalue FROM tablename
“Right”-function 是一种方法,使用子字符串可能会导致一个不太容易注意到的问题:
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)
Right
是一个不错的选择,但您也可以substring
像这样使用-
SELECT Substring(columnname,-5) as value FROM table_name
SELECT row_id
FROM column_name
WHERE column_value LIKE '%12345';
当发现“12345”是“column_name”中“column_value”的尾部后缀时,这将返回“row_id”。
如果你想在一个字符之后获得大量正确的字符:
SELECT TRIM(
RIGHT(
database.table.field,
(LENGTH(database.table.field) - LOCATE('-',database.table.field))
)
)
FROM database.table;
SELECT SUBSTR ('Stringname', -5) AS提取字符串;