dポイントプレゼントキャンペーン実施中!

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

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

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

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

A 回答 (2件)

''で囲えば文字列として扱われるので


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

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

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

例.
'鈴木's SHOP'→'鈴木''s SHOP'
または
'鈴木's SHOP'→'鈴木\'s SHOP'
    • good
    • 0
この回答へのお礼

sakuhatさま

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

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

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

お礼日時:2005/04/25 17:00

もちろん日本語で指定することも可能ですが、


あとあと痛い目見たくないなら英数で指定したほうがいいと思いますよ

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

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

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

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


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

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

SELECT * FROM `customer` WHERE family_name = '鈴木'
は同じ意味になります
    • good
    • 0
この回答へのお礼

inu2さま

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

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

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

お礼日時:2005/04/25 13:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す