我有三张桌子。
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中“子串”一列?
感谢。
答案 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)