我有一张包含电话号码字段的表格。我需要更新左起第三个数字函数中的“地区名称”字段。
UPDATE mytable
SET districtname =
CASE
WHEN the3rdnumberfromleft = '8' THEN 'Mycountryname'
ELSE ''
END
如何设置条件以读取该特定位置的数字?
我有一张包含电话号码字段的表格。我需要更新左起第三个数字函数中的“地区名称”字段。
UPDATE mytable
SET districtname =
CASE
WHEN the3rdnumberfromleft = '8' THEN 'Mycountryname'
ELSE ''
END
如何设置条件以读取该特定位置的数字?
您可以LIKE
在 MySql 中使用通配符
UPDATE mytable
SET districtname = 'yourDesiredName'
WHERE telephone LIKE '__8%'
解释:
__8%
将匹配任何电话号码8
在左起第三位的电话号码。
请注意,在含义之前有两个_
(下划线)字符8
首先匹配two
任何字符(每个字符一个)
然后来8
了,所以它只会匹配8
然后是%
意思匹配之后的任何字符。
有关更多信息,请参阅此链接
如果我正确阅读了您的问题,则您只想更新表中的某些行。如果这是真的,试试这个。
UPDATE mytable
SET districtname = 'Mycountryname'
WHERE SUBSTRING(LTRIM(telephone),3,1) = '8'
这将只选择您提到的 8 行。我投入了 LTRIM 以应对您的电话号码前面可能有空格的情况。如果您确定所有电话号码都是左对齐的,则不需要它。
如果电话号码存储在整数字段中,这仍然有效,因为 MySQL 隐式转换您使用的整数,就好像它们是字符串一样。