我尝试使用Instr
,但没有成功,所以我发现使用PatIndex
和CharIndex
应该是等效的,但是,当我运行这个时,我遇到了一个问题:
SELECT PATINDEX(`http://www.stackoverflow.com`,'%.com%')
这将返回0
SELECT CHARINDEX(`http://www.stackoverflow.com`,'%.com%')
这将返回0
SELECT PATINDEX(`http://www.stackoverflow.com`,'.com')
这将返回0
SELECT CHARINDEX(`http://www.stackoverflow.com`,'.com')
这将返回0
如何使其像InStr
一样工作?
如果我的计算是正确的,它应该返回25
而不是0
,有人知道为什么不是吗?
你已经把它颠倒了。
select patindex('%.com%', 'http://www.stackoverflow.com');
select charindex('.com', 'http://www.stackoverflow.com');
在计算列函数中使用这些函数时要小心。因为它们是不确定的。
https://technet.microsoft.com/en-us/library/aa214775(v=sql.80).aspx