2010-08-12 117 views
4

我如何搜索mysql中的特定字符串? 我试过使用包含 - 给我错误:mysql查询 - 包含?

SELECT r.name 
    , r.network 
    , r.namestring 
    , i.name 
    , r.rid 
    , i.id 
    , d.dtime 
    , d.ifInOctets 
    , d.description 
FROM router AS r 
INNER JOIN interface AS i ON r.rid = i.rid 
INNER JOIN 1278993600_1_60 AS d ON i.id = d.id 
           AND d.dtime BETWEEN 1279027200 AND 1279029000 
    WHERE r.network = "ITPN" 
     AND i.status = "active" 
     AND i.description CONTAINS ' DBK' 

请帮忙。

+0

CONTAINS是全文搜索(FTS)语法,并且SQL Server和Oracle都支持关键字(尽管支持的语法不同)。 – 2010-08-12 15:40:27

回答

8

尝试

AND i.description LIKE '% DBK%' 
+0

非常感谢你! – JJunior 2010-08-12 15:57:49

1

使用像,IE和i.description LIKE '%DBK%'

+0

请注意'DBK'之前应该有一个前导空格。 – RedFilter 2010-08-12 14:44:52

1

尝试

...AND i.description like '% DBK%' 

或者

...AND upper(i.description) like '% DBK%' 

如果你想获得与DBK什么,DbKdbkdBk,...

+0

根据我的经验,'LIKE'默认情况下不区分大小写,所以不需要'UPPER()'。 – pferate 2010-08-12 15:47:49

+0

@pferate:它有所不同。 Oracle的'LIKE'区分大小写。当时我记不起来了,但MySQL的默认情况下是*敏感的(只是查了一下)。 – FrustratedWithFormsDesigner 2010-08-12 16:09:45

+0

谢谢。很高兴知道,我没有与Oracle合作过。 – pferate 2010-08-12 18:17:36