- 締切済み
SQL文のwhere条件文で使う <> の意味はなんですか
SELECT * FROM user WHERE date <> 1 SELECT * FROM user WHERE key <> "" ↑の date <> 1 とか key <> "" の <> はどういう意味でしょうか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- mkirin
- ベストアンサー率0% (0/0)
チョット前に見かけたSQLの入門HPを紹介します。 http://www.iceprobe.net/ 因みに下のURLはこのHPの比較演算子についてのページです。 >という事は、「 != 」と同じ意味でしょうか? なぜ、「 != 」を使わずに、「 <> 」なんでしょうか・・? 何故何種類も同じ意味の表現があるの?という所に拘るなら回答になっていませんが とりあえず SQLにおいて 「等しくない」というのは3種類の表現がある という事が分かります。 この手のものは、「決まり」なのでこのような物と覚えるしかありません。 ただ 自分で使うものは一つに決めておいたほうが良いですね。(できれば、周りの人とあわせたり、周りの人にあわせてもらったりしましょう いわゆる標準化) 因みにExcelの式で<>を使っていたので 私自身は3種類のうちで<>が一番しっくりきます。 人それぞれ ということで、馴染みやすそうな表現を3種類えらんだのかなあ・・・(単なる想像) では、頑張ってください。
- i536
- ベストアンサー率32% (75/231)
Xを数とするとき、 X<>1は、X<1またはX>1 という意味だと思います。 なぜなら、 X<1またはX>1 が真ならば、X≠1.---(1) X≠1が真ならば、X<1またはX>1.---(2) したがって、(1)と(2)から、X≠1⇔X<1またはX>1. つぎに、文字列、真理値、日付に対しても、 上の数に対する<>の≠としての用法を、 そのまま拡張流用したのではないでしょうか。
- osamuy
- ベストアンサー率42% (1231/2878)
> 「 != 」と同じ意味でしょうか? 「!=」がどういう文脈で使われているものかを規定してないので、何とも言えない、というのが厳密な態度。っていうのも大人げないので、Cやrubyの!=と同じ。 BASICなんかは、「<>」。 Fortranなんかは、「.NE.」だったり。 詳しくは各言語の文法書をどうぞ。
>なぜ、「 != 」を使わずに、「 <> 」なんでしょうか・・? 「!=」でも問題ありません。 データベースによって若干違いがありますが、NOT EQUALを表すのには、「<>」「!=」「~=」「^=」があります。 使えるならば、どれを使ってももかまいませんが、使う場合には、後々混乱しないように、同じ比較演算子を使うようにした方が良いです。 ちなみに、Visual BasicやDelphiでは、「<>」がNOT EQUALです。 なぜ「<>」がNOT EQUALなのかと言われても詳細はわかりませんが、「左辺が右辺より大きい(>)」かつ「左辺が右辺より小さい(<)」という状態はありえないので、否定の意味で定義されたのではないかと思います。 「SQL 比較演算子」などで、Google等で検索してみましょう。 http://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&q=SQL+%94%E4%8Ar%89%89%8EZ%8Eq&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
- munakata
- ベストアンサー率62% (5/8)
NOT EQUAL(≠)の意味だと思いますよ。
- osamuy
- ベストアンサー率42% (1231/2878)
不等比較演算子。 左辺が右辺と等しくない場合にtrueを、等しい場合はfalseを返します。
お礼
度々すみません、補足の内容は無視してください・・間違えました。 「等しくない」という事は、 「 != 」と同じ意味でしょうか?
補足
早速のご回答ありがとうございます! >左辺が右辺と等しくない場合にtrueを、等しい場合はfalseを返します。 という事は、 SELECT * FROM user WHERE date = 1 SELECT * FROM user WHERE key = "" と同じ意味ですか? なぜ「 = 」ではなく「 <> 」を使うんですか?
補足
ご回答ありがとうございます! >NOT EQUAL(≠)の意味だと思いますよ。 という事は、「 != 」と同じ意味でしょうか? なぜ、「 != 」を使わずに、「 <> 」なんでしょうか・・?