比较MySQL中的两个字符串

时间:2011-06-11 01:21:24

标签: mysql

我当前的查询(不起作用)

SELECT url
FROM table
WHERE
    'http://www.longurl.com/some/string' like '%' . url . '%'

url
longurl.com

我正在尝试将longurl.com的“table”中的记录与包含longurl.com的任何比较网址进行匹配。

应匹配比较的网址,例如:

http://www.longurl.com/some/string
http://longurl.com
http://longurl.com/some/string

在这个PHP示例中,很容易比较:

$url = "http://www.longurl.com/some/string";    
if(strstr($url, 'longurl.com')) {
    echo "success";
} else {
    echo "failure";
}

7 个答案:

答案 0 :(得分:6)

好的,那么:

SELECT url 
  FROM table 
 WHERE INSTR('http://www.longurl.com/some/string', url) > 0

(格式化在评论中没有那么好用,所以我再次添加它作为答案。)

答案 1 :(得分:0)

如果您需要的是获取包含longurl.com的所有网址,请尝试使用:

SELECT url
FROM table
WHERE
url like '%longurl.com%'

它应该有用。

答案 2 :(得分:0)

您在寻找:

LIKE '%longurl.com%'

答案 3 :(得分:0)

尝试删除或转义URL字符串中的某些字符。或者省略http:part ..我相信:可能会让解析器感到困惑......

so try   %//longurl.com/%

甚至

%longurl.com%  if possible

甚至

http://longurl.com/%

答案 4 :(得分:0)

此?

SELECT url
FROM table
WHERE
    url like '%http://%longurl.com%'

或者您也可以使用%longurl.com%

答案 5 :(得分:0)

MySQL中不存在连接运算符.,您必须改为使用CONCAT()函数:

SELECT url
FROM table
WHERE 'http://www.longurl.com/some/string' LIKE CONCAT('%', url, '%');

答案 6 :(得分:0)

这个怎么样:

SELECT url 
FROM table
WHERE url LIKE '%longurl.com%string%'

或者,就像你的PHP:

SELECT url 
FROM table
WHERE url LIKE '%longurl.com%'