2010-08-24 108 views
2

我想从C_Table中选择,其中Name='John'和使用like运算符。例如,如何在SQL中使用'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   | 
----------------------------------------------- 

回答

6

你几乎拥有了:

select name from table where name="John" and details like '%Boy%'; 
0
select Name from C_Table where Name='John' and Details like '%Boy%' 
4

你说什么作品,但只有一个WHERE被使用,在单引号被包裹%Boy%需求太:

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

这将返回所有行名称列是'John',而详细信息列中包含'Boy'(%是一个通配符,因此它将匹配任何在前后都有“Boy”一词的任何内容)。

您只需指定WHERE一次,AND s和OR s之后,该点将扩展WHERE子句。另外,参数在字符串时需要引用。

1

你接近,试试这个

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

谢谢我成功在您的帮助。 – Jack 2010-08-24 20:35:32

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

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

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

一个需要注意在LIKE表达式中使用通配符时是 - 当如C_TABLE.name列存在索引,如果通配符左side-- name LIKE '%John' - 该指数可以是用过的。这意味着查询速度并不尽如人意。通配符右侧 - name LIKE 'John%'没有这个问题。如果不需要,尽量不要使用左侧通配符。

0

试试这个:

SELECT Name FROM C_Table WHERE Name='John' AND Details like '%Boy%' 
相关问题