• ベストアンサー

MySQLでvarcharに先頭ゼロをセットしたい

いつも参考にさせてもらっています。 MySQL初心者ですが、よろしくお願いいたします。 varchar(50)のpos列に下記のようにデータの更新をかけます。 UPDATE t_collo SET pos="001110000" データベースを確認すると実際には"1110000"となって、先頭の ゼロがなくなっています。 恐らく基本的なところかと思うのですが、グーグル先生に聞いても 当方の力量不足なのか、よくわかりませんでした。 ご教示いただけますと助かります。

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

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

なにかのプログラムからMySQLにアクセスしていますか? とくに先頭の0は消えませんが・・・ create table t_collo (id int ,pos varchar(50)); insert into t_collo values(1,'x'),(2,'x'),(3,'x'); update t_collo set pos='001110000' where id=1;

kotokoto_1980
質問者

お礼

今、MySQL Workbenchから直接下記のSQLを発行してみました。 update t_collo set pos='001110000' where id=1 すると、やっぱりpos列は1110000となっていました。 やはりMySQL側の問題なのでしょうか? MySQLは初めてなので、どうもよくわかりません。 どうか、よろしくお願い申しあげます。

kotokoto_1980
質問者

補足

yambejp様 早速のご回答ありがとうございます。 質問のしかたがまずかったですね。 申し訳ありませんでした。 該当のSQLはPHPから発行しております。 yambejp様のおっしゃるようなら、PHP側の問題となりますね。 PHPでは以下のように書いています。 $sql = "update t_collo set pos=\"".$arr[$i]."\" where id=".$id $arr[$i]に配列変数として'001110000' が格納されています。 配列はダブルクォーテーションで囲ってますので、文字列として SQLを作っています。 print $sql で確認をしても、 update t_collo set pos='001110000' where id=1 となっていました。 てっきりMySQL側の設定かと思ったのですが、、、

すると、全ての回答が全文表示されます。

関連するQ&A