12

Вопрос по mysql – Есть ли причина не использовать <=> (нулевой безопасный оператор равенства) в mysql вместо =?

MySQL предоставляет хороший оператор<=> который работает с сравнениями, которые могут содержать нуль, такие какnull <=> null или жеnull <=> 5 и т.д., возвращая интуитивно понятные результаты, как многие языки программирования. В то время как обычный оператор equals всегда просто возвращает null, что ловит многих новых пользователей MySQL, таких как я, заблуждающихся.

Есть ли причина, по которой MySQL имеет и то, и другое, а не просто функциональность в<=> ? Кому действительно нужен оператор, который фактически не определен со встроенными языковыми типами?

  • Error: User Rate Limit ExceedednullError: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от cellige
  • Error: User Rate Limit Exceeded

    от cellige
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit ExceededsmallError: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
5 ответов
  • 4

    Who really needs an operator that is effectively undefined with built

    in language types?

    вам также это нужно для отношений внутри вашей базы данных. особенно если вы используете ограничения внешнего ключа.

    Error: User Rate Limit Exceeded
    Error: User Rate Limit ExceededNULL. this will make sure, that this task is unassigned. which means: there is no possibility that there is a relation to the employees table.

    еслиNULL = NULLError: User Rate Limit ExceededtrueError: User Rate Limit ExceededNULLError: User Rate Limit Exceeded

  • 6

    Большая разница между null в mySQL и в языках программирования заключа

    ется в том, что в mySQL null означаетunknownError: User Rate Limit Exceededundefined значение.

    Error: User Rate Limit Exceeded

  • 1

    Error: User Rate Limit Exceeded

    (TRUE, NULL, FALSE).

  • 10

    Who really needs an operator that is effectively undefined with built

    in language types?

    Вы попросили несколько реальных примеров. Здесь ложный. Допустим, у вас есть молодежная программа для проживания или аналогичная программа, и одно из требований заключается в том, что дети проживают в одной комнате только с кем-то того же пола. В вашей базе данных есть пустое поле M / F, которое можно обнулять, потому что ваш фид данных неполон (вы все еще гоняетесь за некоторыми данными). Ваш код соответствия комнаты определенно не должен совпадать с учащимися, где t1.Gender & lt; = & gt; t2.Gender, потому что он может в конечном итоге найти двух детей неизвестного пола, которые могут быть противоположного пола. Вместо этого вы соответствуете, где они равны, а не равны нулю.

    Это только один пример. Я признаю, что поведениеNULL и=Error: User Rate Limit ExceededNULLError: User Rate Limit Exceeded<=> оператор.

  • 2

    Is there a reason MySql has both and not JUST the functionality in <

    => ? The operators are completely different from each other.

    <=>Error: User Rate Limit Exceeded=Error: User Rate Limit Exceeded1Error: User Rate Limit ExceededNULLError: User Rate Limit ExceededNULLError: User Rate Limit Exceeded0Error: User Rate Limit ExceededNULLError: User Rate Limit ExceededNULL.

    Who really needs an operator that is effectively undefined with built in language types?

    Error: User Rate Limit Exceeded