如何从查询中减去数据?

3

这是我的样例查询

$sql = mysql_query("SELECT * FROM dataweb WHERE web LIKE 'google%'ORDER BY ASC LIMIT 8"); 

上述查询是为了找到相似的域名。但我想要删除所有的谷歌相关结果……这意味着结果只返回像google.com、google.br、google.de等以google开头的其它域名。
我只想要以google开头的其它域名。

1
请给出一个应该返回的域名示例。“我只想要以谷歌开头的restdomains”这句话很难理解。 - Mark Eirich
2个回答

7
为了实现这一点,需要使用NOT LIKE而不是。

@limo - 可能无法正常工作是因为 ORDER BY ASC... ORDER BY 需要一个列名(或位置)进行排序,它会抱怨一个被认为叫做 ASC 的列名,因为 ASC 是一个保留字。 - Mark Baker
很好的发现,Mark,漏掉了。是的,应该是ORDER BY(某个列)ASC。Limo,调试它(或任何事情)的好方法是将其削减到最基本的形式,然后不断添加条件,看看在哪里出错。 - Steve

3
您需要以google开头但不包括google.的域名吗?您可以使用REGEXP来实现。
SELECT web
FROM   (SELECT 'google.com' AS web UNION ALL
        SELECT 'google.co.uk' UNION ALL
        SELECT 'google.br' UNION ALL
        SELECT 'google.de' UNION ALL
        SELECT 'googleplex.com' UNION ALL
        SELECT 'google-watch.org' UNION ALL
        SELECT 'ooglegoogle.com') dataweb
WHERE  web REGEXP '^google[^.].'
ORDER  BY web ASC
LIMIT  8  

返回

web
----------------
google-watch.org
googleplex.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接