2013-02-15 93 views
0

我有两列,我想比较:第一列是一个住宅号码格式为(555)555-5555,第二列以格式5555555555.00出现。我想比较第三列中每个数字的前6位数字,如果前6位数字匹配显示TRUE,如果不匹配则为false。我已经完成了查询,但是将列转换为相同的格式正在杀死我。对此有何帮助?电话号码转换和比较

+0

你已经用mysql和vb.net标记了这个标签。你想如何做到这一点,在SQL或在VB.NET? – Melanie 2013-02-15 22:11:23

+0

我正在使用MySQL表并使用datagridview来显示查询。 – 2013-02-15 22:12:39

+0

你可能也会看看libphonenumber的[.Net端口](https://bitbucket.org/pmezard/libphonenumber-csharp/wiki/Home) - 这是在c#中,但应该从vb.net工作得很好也。 – 2013-02-15 22:41:22

回答

1

在MySQL中,一个快速的解决办法是这样的:

SELECT 
    col1, 
    col2, 
    CASE WHEN 
    LEFT(
     REPLACE(REPLACE(REPLACE(REPLACE(col1, '(', ''), ')', ''), '-', ''), ' ', ''), 
     6) = LEFT(col2,6) 
    THEN 'True' 
    ELSE 'False' 
    END Matches 
FROM yourtable 

请参阅本fiddle