質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

3回答

10478閲覧

mysqlで、varchar型に数値を入れる時、クォートで囲う/囲わないで値は変わりますか?

ustst

総合スコア31

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/09/03 13:12

聞きたい事

mysqlで、varchar型に数値を入れる時、クォートで囲う/囲わないで値は変わりますか?
もしシングルクォート、ダブルクォートで変わるのであれば、それも聞きたいです。

sql

1update t1 set f1 = 100; 2update t1 set f1 = '100'; 3update t1 set f1 = "100"; 4 5これらの差分の有無を知りたいです
CREATE TABLE `t1` ( `f1` varchar(255) DEFAULT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

質問の意図

既存の環境でデータベースを更新する必要があるのですが、
クォートで囲う/囲わないで差分が無いか、それにより問題が起こらないか確認したいです。
「両方同じである」という結論であれば、懸念無く作業に取りかかれます。

updateでクォートなしで更新して、
mysqldumpで確認してもシングルクォート有りで出力したので
たぶん差異はないんじゃないかなと思ってはいるのですが、念の為確認させてください。

実際にはこれらのDBの一部がレプリケーションされ・・・とまたややこしいのですが。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

基本的には、一重引用符によるものがいちばん正しいです。

二重引用符は、ANSI_QUOTESというモードでは識別子として認識されてしまいます(リファレンス)。

そして、引用符なしで書いた場合には、いったん数値として認識されてから、変換によって文字列となります。10とか100とかいった、小さい整数を扱う分には問題が出ることはないかと思いますが、巨大な数や小数点以下が細かい数を入れると、いったん数値として解釈した際に精度が失われる危険があります。

投稿2018/09/03 13:24

maisumakun

総合スコア146063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ustst

2018/09/04 08:26

皆さんご回答ありがとうございました。 おかげで安心して作業に臨めます。
guest

0

SQLでは文字列はシングルクォートで囲むのが掟です。

投稿2018/09/03 14:47

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

情報が格納されるカラムの型が問題なので違いはないです。
mysqldumpの出力結果も型に合わせた一般的な出力形式になっていると思います。
とはいえ、基本的には型に合わせて入れるべきですしダブルクォートは推奨されないものと思います。
MySQLがいい感じに吸収してくれているので問題が起きていないように見えますけど。

投稿2018/09/03 13:26

編集2018/09/03 13:28
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問