0

我有一张包含电话号码字段的表格。我需要更新左起第三个数字函数中的“地区名称”字段。

 UPDATE mytable
 SET districtname =
 CASE
    WHEN the3rdnumberfromleft = '8' THEN 'Mycountryname'
    ELSE ''
 END

如何设置条件以读取该特定位置的数字?

4

2 回答 2

1

您可以LIKE在 MySql 中使用通配符

UPDATE mytable 
   SET districtname = 'yourDesiredName'
WHERE telephone LIKE '__8%'

解释:

__8%将匹配任何电话号码8在左起第三位的电话号码。

请注意,在含义之前有两个_(下划线)字符8首先匹配two任何字符(每个字符一个)

然后来8了,所以它只会匹配8

然后是%意思匹配之后的任何字符。

有关更多信息,请参阅此链接

于 2012-11-22T16:42:04.217 回答
0

如果我正确阅读了您的问题,则您只想更新表中的某些行。如果这是真的,试试这个。

 UPDATE mytable 
    SET districtname = 'Mycountryname'
  WHERE SUBSTRING(LTRIM(telephone),3,1) = '8'

这将只选择您提到的 8 行。我投入了 LTRIM 以应对您的电话号码前面可能有空格的情况。如果您确定所有电话号码都是左对齐的,则不需要它。

如果电话号码存储在整数字段中,这仍然有效,因为 MySQL 隐式转换您使用的整数,就好像它们是字符串一样。

于 2012-11-22T16:22:40.080 回答