
No.3ベストアンサー
- 回答日時:
MySQLの独自構文と、標準SQLの構文を体感するごく簡単な例を作ってみました。
-- テスト用の表定義&データ
drop table if exists `t1`;
create table t1
(`c1` int primary key
,`c1-1` int
,`c2` varchar(5)
,`c3` varchar(5)
,`dt` date
);
insert into t1 values
(1,100,'abc','xyz','2011-04-01')
;
-- SQLモードの確認
select @@global.sql_mode;
select @@session.sql_mode;
-- MySQL構文とANSI構文の違い、引用符の意味などを確認するSQL例
select
*
, 1 -- 数値定数
, c1-1 -- 「列c1-1」という減算
, 'c1-1' -- 「'」(単一引用符)で囲んだものは文字定数
, "c1-1" -- 「"」(二重引用符)で囲んだものは、
-- MySQL構文モードでは文字定数
-- ANSI構文モードでは、列名など名前。
, `c1-1` -- 「`」(バッククォート)で囲んだものは、
-- MySQL独自仕様であり、列名など名前。
, 'abc'||'def' -- 「||」は、
-- MySQL構文モードでは、論理演算のor
-- ANSI構文モードでは、文字連結
, concat('abc','def') -- MySQL独自の文字連結関数
, 2011-04-14 -- yyyy-mm-ddを文字定数として指定しないと、
-- 日付でなく、単なる整数の減算として扱われる
, '2011-04-14' -- 'yyyy-mm-dd'といった形式の文字定数は、
-- 日付データ型と型変換してくれる。
from t1
;
-- この接続だけ、一時的にANSI構文モードに変更
set @@session.sql_mode='ANSI';
この後、上述のselect文を再度、実行して結果の違いを確認してみてください。
No.2
- 回答日時:
言語によって関数の書式や演算子の意味が異なることはよくあること
||はMySQLではORですから連結演算子にはつかえません。
http://dev.mysql.com/doc/refman/5.1/ja/extension …
移植性を考慮してのことでしょうけど、すでに定義されているものを
いじるとなるとそちらのケアまで考慮しないといけないので
かえって問題が広がる可能性があることも考慮してください
(つまり素直にCONCATつかいなさい・・・ってことなんですけど)
No.1
- 回答日時:
質問の意図が分かりません。
どういう理由で、代替手段を必要としているのでしょうか?
まず、MySQLでは、SQLの構文モードが存在します。インストール時の標準設定では、MySQL構文モードになっています。
標準SQLや主要なRDBMSでは、「"」(二重引用符)で囲んだものは、表名や列名などの名前ですが、MySQL構文モードでは、文字定数になります。
一方、標準SQL準拠にするには、SQLモードでANSI構文モードにするといった方法があります。
http://dev.mysql.com/doc/refman/5.1/ja/server-sq …
それ以外には、アプリ側でやるとかいろいろ方法は考えられます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- MySQL MySQLでcreateが使えない MySQLを使ってデータベースを作ろうと思い、CREATE を使 3 2022/06/19 15:32
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- 計算機科学 急ぎです、大学数学再帰の問題難しくてがわからないです。 以下の4つの文字列を連結して新たに生成できる 1 2023/05/17 20:11
- マウス・キーボード macからリモートデスクトップでwindowsに接続した際のキーボード配列 3 2023/07/10 08:40
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
~以上~未満の指定の方法
-
コマンドプロンプトでデータを...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルの関数について教えて...
-
for whichの使い方
-
EXISTSを使ったDELETE文
-
SELECT 文 GROUP での1件目を...
-
SQLServerで文字列の末尾からあ...
-
誰か教えてください
-
UPDATE文のWHERE条件に他のテー...
-
NOT INをNOT EXISTSで書き直したい
-
SQLで列名を変数にできないでし...
-
JavaScriptの定数名が取り消し...
-
Visual Basicでツリービューリ...
-
SQLで特定の項目の重複のみを排...
-
updateでグループ化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
~以上~未満の指定の方法
-
コマンドプロンプトでデータを...
-
レコードの最大値
-
SQLiteでINSERT OR UPDATE
-
CONCAT以外で文字列連結できますか
-
アクセスのselect文
-
INSERTできない。
-
SQLの副問い合わせについて
-
Accessのクリエで都道府県だけ...
-
連番の取得
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
SQLで特定の項目の重複のみを排...
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
INSERT文でフィールドの1つだ...
おすすめ情報