みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

使うべきでない文字。

こんにちは。いつもお世話になっております。

テーブル名を作成する時に、-(ハイフン)を
使うと、不具合があるから使わないほうが良いと
何かで読みかじったのですが、どのような
不具合が予想されるのでしょうか?
また、文字列していカラム(VARCHARなど)でも
ー(ハイフン)や+(プラス)など、
使わない方がよかったりいたしますか?

MySQLの基礎本などを読み漁ってみたのですが、
ある書物ではテーブル名を普通に日本語文字に
していたり、また違う基礎本では、日本語は
使うべきでは無いと紹介されていて、初心者には
何を信じて覚えるべきなのか、混乱してしまって・・・。

どうかご指導よろしくお願いいたします。

投稿日時 - 2005-04-25 12:10:16

QNo.1351045

困ってます

質問者が選んだベストアンサー

''で囲えば文字列として扱われるので
+などの記号は平気です。
ただし、文字列に「'」や「\」が含まれると
困ったことになります。

「鈴木's SHOP」という文字列をそのまま登録すると
INSERT INTO TABLE (NAME) VALUES('鈴木's SHOP');
となり'鈴木'までしか囲ったことにならず
エラーになってしまうことがわかると思います。

「'」や「\」を登録するときは
「'」 → 「''」または「\'」
「\」 → 「\\」
とする必要があります。

例.
'鈴木's SHOP'→'鈴木''s SHOP'
または
'鈴木's SHOP'→'鈴木\'s SHOP'

投稿日時 - 2005-04-25 16:29:06

お礼

sakuhatさま

ご指導ありがとうございます。

とても判りやすく説明して頂けたので
ストンと頭に入りました。

ありがとうございました。

投稿日時 - 2005-04-25 17:00:55

ANo.2

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

もちろん日本語で指定することも可能ですが、
あとあと痛い目見たくないなら英数で指定したほうがいいと思いますよ

-(ハイフン)を使わないほうが良いというのは

SELECT * FROM `customer` WHERE `family-name` = '鈴木'

SELECT * FROM `customer` WHERE family-name = '鈴木'
では全く意味が違います

つまり後者の場合は-(ハイフン)は-(マイナス)の意味になってしまうからです


ちなみに私はこのような場合_(アンダーバー)を使っています

SELECT * FROM `customer` WHERE `family_name` = '鈴木'

SELECT * FROM `customer` WHERE family_name = '鈴木'
は同じ意味になります

投稿日時 - 2005-04-25 13:35:30

お礼

inu2さま

ご指導ありがとうございます。

マイナスの意味になってしまうのは
かなり怖いですよね_| ̄|○
素人考えながら、アンダーバーを使うように
していたよかったです。
・・・全部指定しなおしだったら恐ろしく
脱力な事になるところでした。

あと、'鈴木'と保存する所へ'鈴木+田中'のように
途中に記号がはいったりするのは、タブー
なのでしょうか・・・?

投稿日時 - 2005-04-25 13:58:15

あなたにオススメの質問