如何根据正则表达式查询将是或否值插入标志列
How to insert yes or no value into flag column based on regex query
我有一个简单的更新,可以很好地分析美国的电话号码。它根据以下查询在 phone_flag 列中正确插入 Y。
UPDATE database.table SET phone_flag = 'Y'
WHERE id BETWEEN 1 and 100000
AND (phone REGEXP '[0-9] {10}');
如果 N 值与表达式不匹配,我想插入它,但我不知道该怎么做。我使用的查询。
UPDATE database.table
SET phone_flag = CASE
WHEN phone = REGEXP [0-9]{10} then 'Y'
ELSE 'N' END
WHERE id = '7'
有人知道怎么解决吗?谢谢
刚刚:
UPDATE database.table
SET phone_flag = CASE WHEN phone REGEXP '^[0-9]{10}$' then 'Y' ELSE 'N' END
WHERE id = 7
理由:REGEXP
是一个运算符,不要和=
一起使用。
另请注意,我修改了正则表达式,开头为 ^
,结尾为 $
:这会强制 phone
准确地包含 10 位数字(不多,也没有其他字符)。如果这不是您想要的,您可以恢复该更改。
我有一个简单的更新,可以很好地分析美国的电话号码。它根据以下查询在 phone_flag 列中正确插入 Y。
UPDATE database.table SET phone_flag = 'Y'
WHERE id BETWEEN 1 and 100000
AND (phone REGEXP '[0-9] {10}');
如果 N 值与表达式不匹配,我想插入它,但我不知道该怎么做。我使用的查询。
UPDATE database.table
SET phone_flag = CASE
WHEN phone = REGEXP [0-9]{10} then 'Y'
ELSE 'N' END
WHERE id = '7'
有人知道怎么解决吗?谢谢
刚刚:
UPDATE database.table
SET phone_flag = CASE WHEN phone REGEXP '^[0-9]{10}$' then 'Y' ELSE 'N' END
WHERE id = 7
理由:REGEXP
是一个运算符,不要和=
一起使用。
另请注意,我修改了正则表达式,开头为 ^
,结尾为 $
:这会强制 phone
准确地包含 10 位数字(不多,也没有其他字符)。如果这不是您想要的,您可以恢复该更改。