読者です 読者をやめる 読者になる 読者になる

それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

mysql で無精するとCREATE TABLE がなんかいっぱいnot null が付く

sql

SQL 作った

drop table if exists A;

create table A (
  id int primary key,
  title varchar(256)
);
show create table A;

実行した

A      
 CREATE TABLE `A` (
  `id` int(11) NOT NULL,
 `title` varchar(256) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1

not null なんかつけた覚えないのに。。。null で怒られたから、なんだろうと思ったら、not null ついてた。SQL難しい。。。

at_STARBUCKS_Wi2 のぱぱっと

セッションが切れまくるので自動化する。

30分くらいで切れちゃうので、バックグラウンドで、接続をチェックして切れてたら自動ログインするために、XHRを見てmechanizeに書いた。あらっぽい。。。

require 'mechanize'
m = Mechanize.new
m.get 'https://service.wi2.ne.jp/wi2auth/at_STARBUCKS_Wi2' #session-id cookie吐き出させる
m.page.form.submit # 同意手順に従う。
headers = {  "content-type"=> "application/json","dataType"=>"json" }
params = '{"login_method":"onetap","login_params":{"agree":"1"}}'
m.post('https://service.wi2.ne.jp/wi2auth/xhr/login', params,headers)

Wi2のログインはJSで、Cookieの有効期限を仕込んでるんだけど。何のために仕込んでるのか正直わからなった。。。

たぶん、他のWi2でもスマホでワンタップログインする系は、同じだと思う。

openresty/1.7.4.1 ってなんでですかね。

SQLでecho/print するための代替方法

sql

SQL で記述しているとecho が無い。

あれこれSQLを書いてまとめて流しているとコメントを出力したいことがある。

SELECT * from A;
SELECT * from B;
SELECT * from C;

などとしていると、途中で改行を挟んだり、クエリがなんだっけとなるのです。

コメントを入れても出力されない。echo したい・・・

こういうことがやりたい→出来ない。
echo テーブルAの中身
SELECT * from A;
echo テーブルBの中身
SELECT * from B;
echo テーブルCの中身
SELECT * from C;

SELECT を工夫してみました。

select 'Hello World' as '' ;

select as カラム名を指定しないとカラム名の出力がされないので、print したっぽいくなる。

これを利用して

SQL で echo / print 関数っぽいことをやる

select '##  A ' as '';
select * from A ;
select '## B ' as '';
select * from B ;
select '## A,B ' as '';
select * from A , B;

実行結果

takuya@:SQL-JOIN$ mysql  example < sample1.sql
Password:

## A
id  title
1   A1
2   A2
3   A3

## B
id  name
1   B1
3   B3

## A,B
id  title   id  name
1   A1  1   B1
1   A1  3   B3
2   A2  1   B1
2   A2  3   B3
3   A3  1   B1
3   A3  3   B3

うん、それっぽくなって、SQLを次々と実行して出力結果を試すのが楽になったよ!