我想从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 |
-----------------------------------------------
答案 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语句中使用一次,并使用AND
,OR
控制过滤(称为谓词)。 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
一次,AND
和OR
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%'