2012-04-13 45 views
28

Tôi phải lấy 5 số cuối cùng bằng cách sử dụng mysql.Lấy 5 chuỗi ký tự cuối cùng bằng truy vấn mysql

giá trị của tôi là như YOT-A78514, LOP-C4521 ...

tôi phải có được chỉ kéo dài lăm char. Làm thế nào tôi có thể làm điều này trong truy vấn?

+0

là bạn chúng tôi ing php? –

+4

@t q: tại sao lại quan trọng? – zerkms

+0

Tại sao bạn không nhìn vào câu trả lời ở đây? https://stackoverflow.com/questions/12504985/how-to-take-last-four-characters-from-a-varchar –

Trả lời

74

Bạn có thể thực hiện việc này với chức năng RIGHT(str,len). Trả về bìa phải len ký tự từ chuỗi str,

Giống như dưới đây:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename 
+3

Tôi không thể dừng bản thân mình để làm +1 ở đây. –

4

Right là một lựa chọn tốt, nhưng bạn cũng có thể sử dụng substring như this-

SELECT Substring(columnname,-5) as value FROM table_name 
1
SELECT row_id 
    FROM column_name 
WHERE column_value LIKE '%12345'; 

Điều này sẽ trả về "row_id" khi "12345" được tìm thấy là đuôi uffix của "column_value" trong "column_name".

+0

Đây là câu trả lời hay cho những ai muốn áp dụng bộ lọc trong mệnh đề WHERE. – Kvvaradha

1

Và nếu bạn muốn có được một số dinamic của nhân vật ngay sau khi một nhân vật:

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

"Right" -function là cách để sử dụng các chuỗi con có thể dẫn đến một vấn đề mà không phải là dễ dàng như vậy cần chú ý:

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) 

Nhưng nếu bạn không cố gắng đi qua khi bắt đầu của chuỗi, sau đó chuỗi tất nhiên hoạt động tốt:

mysql> select substring('hello', -5); 
+------------------------+ 
| substring('hello', -5) | 
+------------------------+ 
| hello     | 
+------------------------+ 
1 row in set (0.00 sec) 
Các vấn đề liên quan