SQL - 如何从列中获取最后两个字符?

时间:2015-04-20 16:11:26

标签: mysql sql

我有三张桌子。

  

users - user_info - district

我构建了一个Inner连接来获取user_id和user_info。

Select * from users a inner join user_info b on a.id = b.user_id

但我在user_info中有一个名为location的列,它从特定位置返回ID。就像这样:

  

00; 11

要获取位置,我必须将user加入user_info表到另一个名为district的表,因为最后两个字符从区中获取了ID。

这就是为什么我想内连接所有三个表,如下:

Select * from users a inner join user_info b on a.id = b.user_id inner join districts c on b.location = c.District_id

问题是,我想只从“位置”列中获取最后两个字符。但我得到了

  

00; 11 //我想只得到11

我将使用Json稍后输出所有内容,我想获取用户信息及其位置。

是否可以在SQL中“子串”一列?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在MySQL中使用SUBSTRING_INDEX来获取分号后的字符串

SELECT SUBSTRING_INDEX('00;11', ';', 2);

或者在你的情况下:

Select  SUBSTRING_INDEX(Location, ';', 2),* from users a inner join user_info b on a.id = b.user_id inner join districts c on b.location = c.District_id

或者,您可以使用RIGHT

获取字符串的最后两个字符
SELECT RIGHT('00;11', 2);

答案 1 :(得分:0)

是的,确实如此。请参阅:MySQL String Functions

mysql> SELECT RIGHT('foobarbar', 4);
        -> 'rbar'

有关详细信息,请参阅:

SUBSTR
RIGHT