我有这个问题:
我想确定表列中的字符串是否是给定值的子字符串。
此表(T_Prefix)包括一组电话号码前缀:
前缀:0175,036840,0162,......
现在我有以下电话号码:017512345789
我的目标是识别此电话号码的前缀。因此,我想像这样启动一个sql语句:
SELECT * from T_Prefix where prefix = LEFT(prefix,x_len);
问题是我必须减少字符串的长度。
还有机会吗? 我可以借助存储过程来完成这项工作吗?
答案 0 :(得分:0)
您可以通过执行以下操作来识别前缀:
select max(prefix)
from t_prefix p
where '017512345789' like concat(p.prefix, '%');
where
子句查找所有匹配的前缀。 max()
返回最长的前缀(因为任何两个前缀都以与较短前缀相同的字符开头,max是最长的前缀)。
答案 1 :(得分:0)
另一种选择可能是
SELECT
PREFIX
FROM
T_PREFIX
WHERE
LOCATE(PREFIX, '017512345789') = 1