2014-01-01から1ヶ月間の記事一覧

map

for,foreachとほぼ同じだが変換を明示的にできる #!/usr/bin/perl my %testmap={ 'hoge' => 'A' , 'foo' => 'B' , 'bar' => 'C' }; my @keys=('hoge','foo','bar'); my @result = map { $testmap{$_}; }@keys; print join(',',@result) . '\n'; --- A,B,C

select

fetchとselect selectrow_array は prepare excute fetchrow_array の処理をまとめたメソッド DBIの使い方 #!/usr/bin/perl use DBI; my $data_source = 'DBI:mysql:test:localhost:3306'; my $user = 'user'; my $pass = 'pass'; my $dbh = DBI->connect($d…

複数のCOUNT

条件の異なる複数のCOUNTを1クエリでやりたい select count(1), count(if(a=0,1,null)), count(if(b>0,1,null)) from test 【SQL】複数の条件のcountを1回の問い合わせでおこなう at softelメモ

HIVEでgroup by

selectするカラムをgroup byしないといけない select a,b,c from test group by a する場合 select a,b,c from test group by a,b,c みたいにする select a b count(c) from test group by a,b countやsum等はgroup byしなくてもOK LanguageManual GroupBy -…

InnoDBでTRUNCATEした時のibdファイル

古いInnoDBではテーブルをTRUNCATEしてもibdファイルは再利用用にのこるらしい 古いバージョンのInnoDBだとTRUNCATE TABLEしてもデータファイルのサイズが減らない件 - shimxmemo 検証 テーブル作成して適当にデータを入れる CREATE TABLE test (hoge VARCHA…

テーブルが存在するか確認する方法

perl,DBIでテーブルが存在するか確認する方法 # table_nameというテーブルが存在するかどうか $sql = qq{ show tables like 'table_name'; }; $sth = $db->prepare ($sql); $tbl = $sth->execute (); $sth->finish; $db->commit (); if ($tbl != '0E0'){ # …

テーブル作成時InnoDBが勝手にMyISAMになる

InnoDBが有効か確認 mysql> show variables like 'have_innodb' +---------------+-------+ Variable_name Value +---------------+-------+ have_innodb NO +---------------+-------+ 1 row in set (0.00 sec) なってない ログを見てみる InnoDB: Error: l…