Nó có vẻ hoạt động:
substring_index ( substring_index ( context,',',1 ), ',', -1)
substring_index ( substring_index ( context,',',2 ), ',', -1)
substring_index ( substring_index ( context,',',3 ), ',', -1)
substring_index ( substring_index ( context,',',4 ), ',', -1)
nó có nghĩa là giá trị thứ nhất, thứ 2, thứ 3, v.v.
Giải thích:
substring_index
bên trong trả về n giá trị đầu tiên được phân tách bằng dấu phẩy. Vì vậy, nếu chuỗi ban đầu của bạn là "34,7,23,89", substring_index( context,',', 3)
trả về "34,7,23".
substring_index
bên ngoài lấy giá trị được trả về bởi substring_index
bên trong và -1
cho phép bạn lấy giá trị cuối cùng. Vì vậy, bạn nhận được "23" từ "34,7,23".
Thay vì -1
nếu bạn chỉ định -2
, bạn sẽ nhận được "7,23", vì nó nhận hai giá trị cuối cùng.
Ví dụ:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Đây, prices
là tên của một cột trong MyTable
.