如何在SQL中使用'like'运算符?

时间:2010-08-24 20:04:12

标签: sql sql-like

我想从C_Table选择Name='John'并使用like运算符。例如,

select Name from C_Table where Name='John' AND where Details like %Boy%

我该怎么做?

(Table name is C_Table)
-----------------------------------------------
Name   |  P_No  |  C_No   |  Details          |
-----------------------------------------------
John   |  001   |  001    |  Good Boy         |
John   |  002   |  002    |  Naughty Boy      |
John   |  003   |  003    |  Very Bad Boy     |
Mary   |  004   |  004    |  Beautiful Girl   |
Mary   |  005   |  005    |  Pretty Girl      |
Mary   |  006   |  005    |  Gorgeous         |
-----------------------------------------------

8 个答案:

答案 0 :(得分:6)

你几乎拥有它:

select name from table where name="John" and details like '%Boy%';

答案 1 :(得分:4)

您说的内容有效,但只使用了一个WHERE%Boy%也需要用单引号括起来:

SELECT Name FROM C_Table WHERE Name = 'John' AND Details LIKE '%Boy%'

答案 2 :(得分:3)

非常接近 - WHERE关键字仅在SQL语句中使用一次,并使用ANDOR控制过滤(称为谓词)。 AND / OR的组合可以优先使用匹配括号 - “(”和“)”。

SELECT Name 
  FROM C_Table 
 WHERE Name LIKE 'John' 
   AND Details LIKE '%Boy%'

在LIKE表达式中使用通配符时需要注意的事项是 - 当C_TABLE.name等列上存在索引时,如果您在左侧使用通配符 - name LIKE '%John' - 索引可以可以使用。这意味着查询不是那么快。通配右侧 - name LIKE 'John%'没有这个问题。如果你不需要,尽量不要使用leftside通配符。

答案 3 :(得分:2)

SELECT Name
FROM C_Table
WHERE Name = 'John'
  AND Details LIKE '%Boy%'

这将返回Name列为'John'且Details列包含“Boy”的所有行(%是一个通配符,因此它将匹配任何具有单词Boy之前的任何内容之后)。

您只需要指定WHERE一次,ANDOR s之后将扩展WHERE子句。此外,参数需要在字符串时引用。

答案 4 :(得分:2)

SELECT Name FROM C_Table WHERE Name='John' AND Details LIKE '%Boy%'

答案 5 :(得分:1)

你很亲密,试试这个

select * 
from C_Table
where Name='John' 
AND Details like '%Boy%'

答案 6 :(得分:0)

select Name from C_Table where Name='John' and Details like '%Boy%'

答案 7 :(得分:0)

试试这个:

SELECT Name FROM C_Table WHERE Name='John' AND Details like '%Boy%'