• ベストアンサー
  • 暇なときにでも

mysqlのフィールド名に使える記号を教えてくだ

mysqlのフィールド名に"event_num","event-num"のように英字の間に'_'や'-'を使うことはできますか? もし使えない場合、ほかに使用できる記号があれば教えてください。

共感・応援の気持ちを伝えよう!

  • MySQL
  • 回答数1
  • ありがとう数13

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

  • ベストアンサー
  • 回答No.1
  • yambejp
  • ベストアンサー率51% (3827/7415)

mysqlの場合は使えるか使えないかという意味では バッククォーテーションで囲えば(`event-num`みたいに) たいていの文字は使えます。 event-numの場合、無意識にフィールド名を書くと event と num の減算と受け取られかねず、お勧めはできません。 また関数名や予約語も使わない方が賢明です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

わかりました。 ご回答ありがとうございます。 ご親切なアドバイスにも感謝いたします。

関連するQ&A

  • MySQLからフィールド名のリストを取り出し、一部のフィールド名を除外したい場合

    PHP + MySQLにて テーブルからフィールド名だけを取得し、さらに一部のフィールド名を除外したいです。 レコードじゃないのでis not構文は使えませんでした。 何かいい方法があれば教えてください。 $sql = "select * from table"; //tableテーブルからフィールド名を取り出し $rs = mysql_query($sql); $fields = mysql_num_fields($rs); $column = array(); for ( $i=0; $i<$fields; $i++ ) { $column[$i] = mysql_field_name($rs, $i); }

    • ベストアンサー
    • MySQL
  • フィールド名に漢字が使えますか? MySQLで

    MySQLで漢字のトラブルが結構ありますが フィールド名に漢字がつかえますか? 環境は OSはWindowXP、Apache、PHP、Accessです ACCESSで結構漢字を使ってますので そのままMySQLでも漢字が使えたら いいのですが

    • ベストアンサー
    • MySQL
  • mysql_field_lenの返り値がvarcharで3倍になる

    PHPの関数「mysql_field_len」で、わからない点がありました。 $id = mysql_list_fields ( 'DbName', 'TableName' ); $num = mysql_num_fields ( $id ); for ( $i=0; $i<$num; $i++ ) { print mysql_field_name ( $id, $i ) ."<BR>\n"; print mysql_field_len ( $id, $i ) ."<BR>\n"; print mysql_field_type ( $id, $i ) ."<BR>\n"; print mysql_field_flags ( $id, $i ) ."<BR><BR>\n"; } として、各フィールドの情報を表示させました。 すると、mysql_field_typeが「string」(実際にはvarchar)の時、 mysql_field_lenの返す値が3倍になって返ってきます。 例:varchar(8)→24 これは何の値を返しているのか、また設定の問題なのか、 ご存知の方はいらっしゃいますでしょうか。 よろしくお願いいたします。 環境: PHP4.3.10 MySQL4.1.10

    • 締切済み
    • PHP
  • mysql_num_rowを繰り返したい

    ラジオボタン選択肢アンケートのデータをMySQLのテーブルに入れて、 mysql_num_row()で各選択肢の件数を抽出したいのですが。 選択肢は1~5の数値(int型)でanテーブルに入っています。 for ($i = 1; $ <= 5; $++) { $rst = mysql_query("SELECT * FROM an WHERE field=$i", $con); $kotae.$i = mysql_num_row($rst); } このように書くと 1の選択肢の数しか返してきません。しかも、件数が間違って返ってくる。  文法が間違っているからだと思うのですが。上記のようなことをやりたいのです。  forを使わないでやると、 $rst = mysql_query("SELECT * FROM an WHERE field=1",$con); $kotae1 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=2",$con); $kotae2 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=3",$con); $kotae3 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=4",$con); $kotae4 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=5",$con); $kotae5 = mysql_num_rows($rst); です。  forを使って楽にやりたい場合はどうすればよいでしょうか 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP-mysql フィールドの値を取得

    認証ページを作成していますが、 フィールドの値を取得できずに困っています。 $r = ?????????????????????; の部分の記述が分かりません。 ($rに、フォームで入力した$idのデータを参照して、もしあったら、その行のPasswdフィールドとフォームで入力した$passを比較したい) よろしくお願いいたします。 $id・・・formの入力内容(Emailフィールドに該当) $pass・・・formの入力内容(Passwdフィールドに該当) <? $hostname = "*"; $username = "*"; $password = "*"; $dbname = "*"; $tablename = "*"; $connect = mysql_connect($hostname, $username, $password) or die ("サーバに接続できません"); mysql_select_db($dbname) or die ("データベースに接続できません"); $sql = "SELECT Passwd FROM $tablename where Email='$id'"; $result = mysql_query($sql, $connect) or die ("クエリーを実行できません"); $num_rows = mysql_num_rows($result); $r = ?????????????????????; print "$num_rows\n"; print "$r\n"; if( $num_rows = 0 ) { print "ユーザ登録されていません。"; print '<a href="">こちらから登録してください。</a>'; session_destroy(); exit; } if( $r != $pass ) { print "パスワードが違います。"; session_destroy(); exit; } print "認証OK"; mysql_close($connect); ?>

    • ベストアンサー
    • PHP
  • MySQLでフィールドの並び替え

    お世話になります。 PHP+MySQLで投票システムの構築をして、管理画面をもう少し見易くしようと思っております。 現在は、単純に投票されたフィールドに対しカウントアップをさせて1回投票されたら「 1 」、 2回投票されたら「 2 」。 「 3 」、「 4 」、「 5 」・・・という様になっております。 そのデータベースへINSERTされたデータをSELECTする際に、数値( 投票数 )が 多い順に並べ替えをしたいと思っておりますが、どの様なクエリを投げてあげれば良いかが 全く分かりません。 例えば、【 ORDER BY フィールド名 】とすると、対象のフィールド名でソートされるのは、 勿論理解しているつもりですが( プラス DESCで降順等 )、今回は 1、りんご → フィールド名: 【 item1 】 2、みかん → フィールド名: 【 item2 】 3、ぶどう → フィールド名: 【 item3 】 という様にフィールド名は違うので、今回の仕様でのソートという概念が理解できません。 ----------------------------------- ▼スペックについて PHP5.3.3 5.0.77 ----------------------------------- ご教示いただけると幸いです。 どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • ユーザ名に使用できない文字・記号は?

    MySQL上でユーザ名に使用できない文字や記号(キーボードから直接入力できるもの限定で)にはどのようなものがあるのでしょうか? (いろいろ試したところ「#」「!」「$」「%」はできるようなのですが・・・)

    • ベストアンサー
    • MySQL
  • MySQLでのフィールドの結合

    こんにちはurudakaraといいます。よろしくお願いします。 私はSQLに関する知識がほとんどありませんがよろしくお願いします。 私はopenofficeをubuntu10.04上で使っています。 業務上データが大量になったためopenofficeについているHSQLというデータベースエンジンでは動作が遅くなったので、データベースエンジンをMySQLに変えました。 するとHSQLでは問題なく結果が出ていたクエリが違う数値を出すようになりました。 まずopenofficeのbaseのテーブルで 識別番号(MySQL Administrator で見るとData Type は VACHAR(50)となってます。) 区分(MySQL Administrator で見るとData Type は DECIMAL(50,0)となってます。) というフィールドがあります。 この状態でopenofficeのクエリのデザイン画面でフィールド欄に "識別番号"+"区分" としてました。 "識別番号1234"+"区分5"の場合  HSQLの場合は結果が 12345 MySQLの場合は結果が 1239 となります。 MySQLでもHSQLの時と同じように結果を出すようにするにはどうSQL文を書けば良いでしょうか? 初心者で分からない事ばかりですが、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • データベース(PostgreSQL)のフィールドとpg_field_num()について

    現在私は、あるシステムを構築しています。 開発言語にPHP、データベースにPostgreSQLを使用しています。 そのシステムの中で、データベース(テーブル)にアクセスし、指定したカラムの保持しているデータを更新する処理をしているところがあります。 各カラム名は、システム使用者のIDとなっています。 実際のスクリプトとしては、 ************************************************ $id = (使用ユーザのID); $rs = (テーブルをセレクトした際のリソース); $row = pg_fetch_row($rs); $new_data = $row[pg_field_num($rs, $id)] + 1; // 該当する値をインクリメント ************************************************ という感じになります(問題箇所のみ)。 IDには大きく分けて二種類あり、  ・数字だけのもの  ・数字が英字混ざったもの があります。 上記のスクリプトで、数字だけのIDでは正常に動作するのですが、数字と英字が混ざったものは正常に動作しません。 pg_field_num($rs, $id)の値を出力してみると、-1 が出ます。 しかし、指定しているカラムはしっかり存在しています。 念のため、pg_field_name($rs, (該当するカラム番号))を出力してみても、出力されたカラム名は正しいです。 即ち、 ************************************************ $new_id = pg_field_name($rs, (該当するカラム番号)); $test = pg_field_num($rs, $new_id); ************************************************ としても、$testの値は -1 となります。 -1 が出力されると言う事はエラーが出力されているという事なので、pg_result_error等でエラーを出力してみても、エラーはありません。。。(もしかしたら、正しくないやり方をしてるのかもしれませんが) 現状では手の施しようがありません。 どなたか、ご教授お願いします。

    • 締切済み
    • PHP
  • フィールド名に日付を入れたい

    いつも回答ありがとうございます。 MySQL&PHPを利用しております。 下記のように書いたのですが、フィールド追加できません。 $today = date("ymd"); $sql = "ALTER TABLE book1 ADD $today TEXT NOT NULL"; $query = mysql_query($sql, $link); $todayの所を、 $today = "d" . date("ymd"); のように文字を先頭に置くなどするとフィールドを追加できました。 日付はフィールド名として指定できないのでしょうか? CRONで毎日、日付のフィールドを追加して、データの変化を見ていきたいと考えています。 わかる方お願いします。

    • ベストアンサー
    • MySQL