2011-05-13 53 views
0

我的位置ID的两个字母的位置前缀后跟数字MySQL的SUB_STRING搜索(前缀的ID)

(AB1,AB2。CA1,CA2,CD1)

,将依次递增每次向一个给定位置添加新记录时减1。为了找到最后添加的ID匹配,我使用的是MySQL子。其是这样的前缀...

SELECT MAX(SUBSTRING(`locationID` , 3, 11)) 
FROM `items` 
WHERE LEFT(`locationID` , 2) = "AL" 

它不工作(它只会在10拿起号)可有人请帮助我呢?

回答

1

你需要将其转换为数字:

SELECT MAX(CAST(SUBSTRING(locationID , 3, 11) AS UNSIGNED)) 
+0

它的工作,非常感谢您的帮助 – pks 2011-05-13 06:12:09

+0

@pks:检查我的答案,然后;-) – zerkms 2011-05-13 06:12:52

+0

当我尝试转换到这个笨MCV它不工作。 。这是我...功能getMaxIDMatchingPrefix($ locationPrefix){ \t \t $ SQL =“SELECT MAX(SUBSTRING('locationID',3,11)) \t \t FROM'items' \t \t WHERE LEFT( 'locationID',2)= =?“; $ query = $ this-> db-> query($ sql,$ locationPrefix); $ query = $ this-> db-> query($ sql,$ locationPrefix); \t \t return $ query; \t} – pks 2011-05-14 07:39:00