sql查询搜索删除字符串的结尾

时间:2017-09-06 23:29:15

标签: sql regex mysqli preg-replace

我正在尝试搜索以特定关键字结尾的域名。例如“car”会带来buycar.com,但不会带来carbuy.com。

所以,如果我的查询是

"SELECT * FROM domains WHERE LIKE '%car'"

根本不会显示任何结果,显然是因为这些域不会以汽车结尾,而是以.com或.co或其他形式结束。

我想我需要做一些正则表达式替换来搜索域名,直到第一个.

或者无论在php的sql中做什么相当于这个:

$pos = strpos($domain,'.');
$search = substr($domain,0,$pos);

因此,只搜索没有TLD的实际域名。这可能与sql一起使用吗?

2 个答案:

答案 0 :(得分:4)

如何使用:

SELECT *
FROM domains
WHERE domain LIKE '%car.%'

答案 1 :(得分:0)

您可以在.com, .IR, .co之后删除car之类的字符并运行自己的查询。

请试试这个:

SELECT *
FROM domains
WHERE 
REVERSE(SUBSTRING(REVERSE(domain),CHARINDEX('.',REVERSE(domain))+1,LEN(domain 
))) LIKE '%car'

如果您不删除该字符并使用Like '%car.%',可能会收到以下内容:car.site.com