2010-08-24 4 views
2

Je veux sélectionner C_TableName='John' et utiliser l'opérateur like. Par exemple,Comment utiliser l'opérateur 'like' dans SQL?

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

Comment procéder?

(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   | 
----------------------------------------------- 

Répondre

6

Vous presque aviez:

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

Ce que vous dites œuvres, sauf un seul WHERE est utilisé et %Boy% a besoin d'être enveloppés dans des guillemets simples aussi:

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%' 

Cela retournera toutes les lignes où la colonne Nom est "John" et la colonne Détails contient "Boy" (le % est un joker, donc il va correspondre à tout ce qui a le mot Boy avec quoi que ce soit avant et après).

Vous ne devez spécifier WHERE fois, AND s et OR s après ce point prolongera la clause WHERE. De plus, les paramètres doivent être indiqués lorsqu'ils sont des chaînes.

1

Vous étiez proche, essayez cette

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

Merci je réussis avec votre aide. – Jack

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

Très proche - le mot-clé WHERE est utilisé qu'une seule fois dans une instruction SQL, et vous contrôlez la filtration (appelés prédicats) à l'aide AND, OR. Les combinaisons de AND/OR peuvent avoir la priorité en utilisant des parenthèses correspondantes - "(" et ")".

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

Quelque chose à prendre en compte lors de l'utilisation des caractères génériques dans une expression LIKE est - quand il existe un index sur une colonne telle que C_TABLE.name, si vous Wildcard name LIKE '%John' de gauche - l'index peut pas être utilisé. Cela signifie que la requête n'est pas aussi rapide qu'elle pourrait l'être. Wildcarding le côté droit-- name LIKE 'John%' n'a pas ce problème. Essayez de ne pas utiliser le wildcarding de Leftside, si vous n'avez pas à le faire.

0

essayez ceci:

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