[mysql]UNIONした時にデータを判別する名前を付ける

UNIONすると、どのデータが何のテーブルから取ったのかがわからなくなるので名前を持つフィールドをSQLから追加してやります。
-- aaaテーブルとbbbテーブルを和集合で結合して出力
SELECT id,user_id,"aaa" AS table_name FROM aaa WHERE 1
UNION
SELECT id,user_id,"bbb" AS table_name FROM bbb WHERE 1

-- データと結果
aaaテーブル
+--+------+
|id|name |
+--+------+
| 1|tarou |
| 2|jirou |
+--+------+
bbbテーブル
+--+------+
|id|name |
+--+------+
| 1|hanako|
+--+------+
結果
+--+------+----------+
|id|name |table_name|
+--+------+----------+
| 1|tarou |aaa |
| 2|jirou |aaa |
| 1|hanako|bbb |
+--+------+----------+
このエントリーをはてなブックマークに追加

tag : sql 和集合 結合 UNION 判別 名前 カラム colum 作成

[mysql]複数テーブルのデータを1つにしてデータを取得

UNION は、各テーブルに共通項目がある場合のみ使えます。
-- aaaテーブルとbbbテーブルのデータの和集合を行い、データを表示する
SELECT AAAandBBB.*
FROM
(
SELECT AAA.id,
AAA.name,
'aaa' AS table_name
FROM aaa AS AAA
UNION
SELECT BBB.id,
BBB.name,
'bbb' AS table_name
FROM bbb AS BBB
) AS AAAandBBB

-- データと結果
AAAテーブル
+--+--------+
|id|name |
+--+--------+
|1 |hello |
|2 |goodbye |
+--+--------+
BBBテーブル
+--+--------+
|id|name |
+--+--------+
|1 |see you |
+--+--------+

結果
+--+--------+----------+
|id|name |table_name|
+--+--------+----------+
|1 |hello |aaa |
|2 |goodbye |aaa |
|1 |see you |bbb |
+--+--------+----------+
このエントリーをはてなブックマークに追加

tag : mysql union 和集合 合体 table テーブル 複数 副問い合わせ subquery サブクエリ

[mysql]カラムが存在するかを確認する

-- 存在すればデータが返り、無ければ空が返ります。
-- table_name:テーブル名 colum_name:カラム名
DESCRIBE table_name colum_name;



参考URL1:カラム名を取得
参考URL2:カラムの情報を表示する
参考URL3:MySQL テーブルのカラム名取得
このエントリーをはてなブックマークに追加

tag : sql DESCRIBE テーブル カラム 名前 存在 確認

[mysql]複数のデータを作成する

idのインクリメントはそのままに、データを大量に作ります。
今回は同じデータを大量に作っています。
フィールドはid(increment指定)とshimeiの2つだけと仮定しています。

この時にデータを登録する時はこうします。
/* テーブル名table_nameのshimeiに「未入力」を入力したデータを5つ、 */
/* idを1~5まで作成する。 */
insert into table_name (shimei)
values ('未入力'),('未入力'),('未入力'),('未入力'),('未入力');


インクリメント指定されたデータは、指定がなければ自動で設定されます。


参考URL:複数のデータを高速にINSERTしたい
参考URL:MySQLのINSERT文を高速化する
参考URL:[MySQL]複数行を追加するためのinsert文
このエントリーをはてなブックマークに追加

[mysql][cakephp] tinyint(1)型は0と1しかはいらない。

cakephpのsave関数は、tinyint(1)boolean型と判断するため0と1しか入らない設定になっています。
そのため、1以外の値で設定する必要があります。
[mysql][cakephp] tinyint(1)型は0と1しかはいらない。_1

わたしはtinyint(4)で落ち着きました。
(公式的にはこれは4ケタの数値がはいります。Zerofillしてみるとわかり易いです。)

tinyint(1)を設定する際は十分に気をつけてください。


参考URL:【CakePHP】tinyintにハマる
参考URL:MySQL でカラム種別を tinyint(1) にしてハマッタ
このエントリーをはてなブックマークに追加

tag : cakephp mysql save できない されない 効かない tinyint (1) 0 1

Translation


プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ