37

不平等をテストするには、2つの(意味的に同等の)方法のどちらが望ましいですか?

  1. 'foo' != 'bar'(感嘆符と等号)
  2. 'foo' <> 'bar'(シェブロン記号よりも小さい記号と大きい記号を合わせて)

MySQLのドキュメントは、それらの間に違いがないことを明確に示していますが、それでも一部の人々は、どちらかの方法でそれを行うことに執着しているようです。たぶんこれはvi対emacsの別の無意味な議論ですが、他の人があなたのコード(したがってあなたのクエリ)を読んでいるときは、ある程度の一貫性を維持することが役に立ちます。

<>これは非常に使用されていない演算子によく似て<=>いますが、2つはほぼ反対であるため、一見すると混乱を招く可能性があります(明らかなNULL場合を除く)。

4

6 に答える 6

53

<>を優先する必要があります。これは、SQL標準に準拠しており、技術的に移植性が高いため、すべてが同じです。

!=は非標準ですが、ほとんどのデータベースはそれを実装しています。

sql:2008文法:

<not equals operator> ::=
  <>
于 2010-01-14T19:37:15.557 に答える
20

明らかです。

!!文字は米国のキーボードの北西の角にあります。

マイクロソフト本社は、米国の北西の隅にあります。

それで。<>マイクロソフトにうなずきます。

!=マイクロソフトの拒否です。

それは秘密の政治的規範です。

于 2010-01-14T19:50:42.427 に答える
4

<> は、SQL-92 標準で唯一のものです。

于 2010-01-14T19:39:30.747 に答える
2

DBAは一般的に<>に似ており、プログラマーは!=に似ています。ただの観察:-)

于 2010-01-14T19:36:28.477 に答える
2

それらは同じです、それは純粋に好みです。

これはあなたに良い考えを与えるはずです

演算子

!=(等しくない)等しくない(SQL-92標準ではない)

<>(等しくない)等しくない

于 2010-01-14T19:37:26.463 に答える
0

演算子は<>SQL標準に含まれているものであるため、SQLを知っているほとんどの人は、SQLに慣れているか、少なくとも知っているでしょう。私自身も、!=最近まで一部のSQL方言で演算子が使用可能であることに気づいていませんでした。

お気づきのように、人々はどちらか一方だけを使用する傾向があり、少なくともプロジェクトごとに、それは良いアプローチです。どちらを使用する場合でも、一貫性を保ってください。

于 2010-01-14T19:43:24.597 に答える