Как использовать оператор «как» в SQL? - PullRequest
2 голосов
/ 25 августа 2010

Я хочу выбрать из 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 ]

6 голосов
/ 25 августа 2010

У вас почти было это:

select name from table where name="John" and details like '%Boy%';
4 голосов
/ 25 августа 2010

То, что вы сказали, работает, за исключением того, что используется только один WHERE, а %Boy% также необходимо заключить в одинарные кавычки:

SELECT Name FROM C_Table WHERE Name = 'John' AND Details LIKE '%Boy%'
3 голосов
/ 25 августа 2010

Очень близко - ключевое слово 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%' не имеет этой проблемы. Старайтесь не использовать подстановочные знаки слева, если вам не нужно.

2 голосов
/ 25 августа 2010
SELECT Name FROM C_Table WHERE Name='John' AND Details LIKE '%Boy%'
2 голосов
/ 25 августа 2010
SELECT Name
FROM C_Table
WHERE Name = 'John'
  AND Details LIKE '%Boy%'

Это вернет все строки, в которых столбец «Имя» равен «Джон», а столбец «Сведения» содержит «Мальчик» (% - это подстановочный знак, поэтому он будет сопоставлять все, что имеет слово «Мальчик», с чем-либо дои после него).

Вам нужно только указать WHERE один раз, AND s и OR s после того, как эта точка расширит предложение WHERE.Кроме того, параметры должны быть заключены в кавычки, когда они являются строками.

1 голос
/ 25 августа 2010

Вы были близки, попробуйте это

select * 
from C_Table
where Name='John' 
AND Details like '%Boy%'
0 голосов
/ 10 февраля 2013

попробуйте это:

SELECT Name FROM C_Table WHERE Name='John' AND Details like '%Boy%'
0 голосов
/ 25 августа 2010
select Name from C_Table where Name='John' and Details like '%Boy%'
...