путаница с MySQL, как поиск и = поиск - PullRequest
0 голосов
/ 09 июня 2018

У меня возникает этот вопрос, когда я использую mysql search что-то.вот подробная информация.

скажем, я получил таблицу с именем test со столбцом с именем content.в конкретной записи столбец content содержит:

["
/^\w{2,}/","
/^[a-z][a-z0-9]+$/","
/^[a-z0-9]+$/","
/^[a-z]\d+$/"]

в конце строк есть символ перевода строки (исключая последняя строка), поэтому при использовании аналогичного синтаксиса для поиска в этой записи янаписал SQL как этот

select * from test where `content` like 
'[\"\n/^\\\\w{2,}/\",\"\n/^[a-z][a-z0-9]+$/\",\"\n/^[a-z0-9]+$/\",\"\n/^[a-z]\\\\d+$/\"]'

, и он вернул правильный результат.но когда я изменил like на =, и этот оператор SQL не работал, после нескольких попыток я получил этот оператор SQL, который работал:

select * from test where `content` = 
'[\"\n/^\\w{2,}/\",\"\n/^[a-z][a-z0-9]+$/\",\"\n/^[a-z0-9]+$/\",\"\n/^[a-z]\\d+$/\"]'

, он работал.Итак, вот вопрос: почему на земле like и = имеют разные стратегии побега?в операторе like я должен использовать \\\\w, \\\\d, тогда как в операторе = \\w, \\d все в порядке?

1 Ответ

0 голосов
/ 09 июня 2018

MySQL LIKE оператор для выбора данных на основе шаблонов .

Оператор LIKE обычно используется для выбора данных на основе шаблонов.Правильное использование оператора LIKE необходимо для повышения производительности запросов.

Оператор LIKE позволяет выбирать данные из таблицы на основе указанного шаблона.Поэтому оператор LIKE часто используется в предложении WHERE оператора SELECT.

MySQL предоставляет два символа подстановки для использования с оператором LIKE, процент % и подчеркивание_.

  • Подстановочный знак процента (%) позволяет сопоставить любую строку из 0 или более символов.
  • Подстановочный знак (_) позволяет вамсоответствует любому одному символу.

Comparison operations приводит к значению 1 (TRUE), 0 (FALSE) или NULL.Эти операции работают как для чисел, так и для строк.При необходимости строки автоматически преобразуются в числа, а числа в строки.

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

=> <> = <= <>! =

Примечание : = - оператор Equal и LIKE для простого сопоставления с образцом

...