首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server regex和where子句中的if else

SQL Server regex和where子句中的if else
EN

Stack Overflow用户
提问于 2016-12-26 16:06:26
回答 2查看 260关注 0票数 3

这是我的密码:

代码语言:javascript
复制
$db = new COM("ADODB.Connection");
$dsn = "DRIVER={SQL Server}; SERVER={$server}; UID={$usr}; PWD={$pwd}; DATABASE={$dbname}";
$db->Open($dsn);
$sql = "SELECT o.CardCode, o.CardName, o.VatIDNum, o.AddID, o.Cellular, o.E_Mail, c.Address
            FROM ocrd o INNER JOIN crd1 c ON o.CardCode = c.CardCode
            WHERE o.Cellular = '$phone1' o.CardName LIKE N'%$lname%'";
$result = $db->execute($sql);

在数据库中,o.Cellular列包含可以用破折号/空格/+符号/大括号格式化的电话号码,所以当我检查WHERE o.Cellular = '$phone1'时,需要将o.Cellular重新格式化为仅数字( $phone1已经是数字)。

第二个问题是,如果o.Cellular不等于$phone1,我想检查o.CardName LIKE N'%$lname%'

因此,当前的代码部分不能像我所需要的那样工作。

任何帮助请..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-22 11:25:54

我自己的最终解决方案:

代码语言:javascript
复制
$phone1 = "0123456789"; /* tests 0123456789 */
$phone1 = preg_replace("/\D+/", "", $phone); /* Leave digits only */
$phone1_wildcard = "%".implode("%",str_split($phone1))."%"; /* converts 0123456789 to %0%1%2%3%4%5%6%7%8%9% in order to catch any mistyping in mssql */
票数 0
EN

Stack Overflow用户

发布于 2016-12-29 22:08:38

REGEX在Server中非常有限。下面是一个替换电话号码中下列字符的示例:+ ( ) - \s

代码语言:javascript
复制
SELECT 
    o.CardCode, 
    o.CardName, 
    o.VatIDNum, 
    o.AddID, 
    o.Cellular, 
    o.E_Mail, 
    c.Address
FROM 
    ocrd o 
    INNER JOIN 
        crd1 c ON 
        o.CardCode = c.CardCode
WHERE 
    replace(replace(replace(replace(replace(o.Cellular,'-',''),' ',''),'(',''),')',''),'+','') = '$phone1' 
    or o.CardName LIKE N'%$lname%'

--test example you can run to see the results of the code

declare @Cellular varchar(16) = '+1 (156) 555-7899'
select replace(replace(replace(replace(replace(@Cellular,'-',''),' ',''),'(',''),')',''),'+','')

--returns 1156555789
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41333632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档