Каково различие между “ПОДОБНЫМ” и “=” в SQL?

Вы, кажется, думаете, что REST является отличным протоколом.

REST не является протоколом. Это - стиль дизайна для основанных на HTTP приложений.

Так, Ваш запись приложения HTTP. Заголовки шифруются? Да, если Вы используете HTTPS (HTTP по SSL) протокол вместо плоскости HTTP.

сертификаты Наличия с обеих сторон не непосредственно относится к Вашему вопросу. Сертификаты SSL используются для аутентификации. Они помогают в обнаружении атак "человек посередине" тех, которые являются возможным отравлением кэшем DNS использования.

42
задан Francisco Alvarado 31 December 2011 в 20:32
поделиться

12 ответов

В соответствии со стандартом SQL разница заключается в обработке завершающих пробелов в столбцах CHAR. Пример:

create table t1 ( c10 char(10) );
insert into t1 values ('davyjones');

select * from t1 where c10 = 'davyjones';
-- yields 1 row

select * from t1 where c10 like 'davyjones';
-- yields 0 rows

Конечно, если вы запускаете это в стандартной СУБД. Кстати, это одно из основных различий между CHAR и VARCHAR.

34
ответ дан 26 November 2019 в 23:31
поделиться

LIKE разрешает частичное соответствие / использование подстановочных знаков, а = проверяет точное совпадение.

Например,

SELECT * FROM test WHERE field LIKE '%oom';

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

Zoom, Boom, Loom, Groom
39
ответ дан 26 November 2019 в 23:31
поделиться

В этом случае нет никакой разницы в результатах. Однако он использует другой метод для сравнения, и "LIKE" будет намного медленнее.

Посмотрите здесь примеры LIKE: http://www.techonthenet.com/sql/like.php

В этом случае вы по-прежнему хотите использовать равные.

Обновление : обратите внимание, что существует решающее различие, когда дело доходит до столбцов типа CHAR, в которых результаты будут другими. См. этот ответ для получения более подробной информации. При использовании VARCHAR (предположительно норма) приведенные выше эквивалентны, и предпочтение отдается равному.

12
ответ дан 26 November 2019 в 23:31
поделиться

LIKE позволяет использовать подстановочные знаки, такие как % (здесь любое количество символов) и _ (здесь один символ).

SELECT * FROM users WHERE username LIKE 'joe%'

Выбирает все имена пользователей, начинающиеся с joe .

4
ответ дан 26 November 2019 в 23:31
поделиться

LIKE ищет шаблон.

/* Returns all users whose username starts with "d" */
SELECT * FROM users WHERE username LIKE 'd%'

/* Returns all users whose username contains "dav" */
SELECT * FROM users WHERE username LIKE '%dav%'
3
ответ дан 26 November 2019 в 23:31
поделиться

Это даст вам тот же результат. Однако LIKE допускает использование подстановочных знаков, например ...

SELECT * FROM users WHERE username LIKE 'davy%'

Единственная проблема синтаксиса заключалась в двойных кавычках вместо одинарных

2
ответ дан 26 November 2019 в 23:31
поделиться

LIKE поддерживает подстановочные знаки. Обычно для подстановочного знака используется символ% или _.

Использование оператора LIKE без подстановочных знаков аналогично использованию оператора =.

1
ответ дан 26 November 2019 в 23:31
поделиться

The LIKE condition allows you to use wildcards:

SELECT * FROM suppliers
WHERE supplier_name like 'Hew%';

See more examples.

and Equals = is used for equality matching.

1
ответ дан 26 November 2019 в 23:31
поделиться

Equals '=' просто для равенства. С другой стороны, LIKE поддерживает сопоставление подстановочных знаков SQL.

Итак, с помощью LIKE вы можете указать имя типа «% jones» , чтобы получить все имена оканчивается на Джонс. При использовании LIKE символ процента '%' может быть любым, нулевой длины или более, а символ подчеркивания '_' - это любой один символ.

0
ответ дан 26 November 2019 в 23:31
поделиться

Насколько я знаю, нет никакой разницы, кроме затрат времени на два выбранных вами выбора. Обычно LIKE используется вместе с % , что означает «любая строка». Я думаю, что есть также символ, который можно использовать с LIKE для «любого символа», не знаю, что это такое, без поиска в Google.

Но по мере того, как ваши два выбора идут, единственная разница, которую я вижу, это другое время выполнения, поскольку LIKE используется в моде регулярного выражения.

0
ответ дан 26 November 2019 в 23:31
поделиться

Подобно тому, как заставляет вас работать с операторами подстановочных знаков, вы можете использовать его в своем случае для , например 'davyjon%' , чтобы получить все результаты, начиная с davyjon , и чтобы получить точное значение, поместите 'davyjones' , и вы также можете использовать = в этом случае

0
ответ дан 26 November 2019 в 23:31
поделиться

Подобно оператору сопоставления с образцом, а = - оператору точного сопоставления. т.е. где имя вида W% означает начало с W и после этого один или несколько символов и = т.е. где name = 'James' , это точное совпадение

1
ответ дан 26 November 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: