2009年4月16日木曜日

新幹線車内から無線LANインターネット

してます。N700系のぞみに乗ってます。
プロバイダはこれを使ってます。1DAYパスポート500円。
http://www.hotspot.ne.jp/
速度はちょっと遅め。でもメールチェックやネットサーフィンには差し支えない程度です。
それよりも、揺れのほうがきついです。最新型の車両とはいえ、けっこう小刻みに揺れます。こうして文章を書いているだけでもちょっと気分が悪くなってきますw
無線LANの利用は今回がはじめてでしたが、新幹線に乗り込んだ直後会社から携帯に連絡があり、急遽システムの対応を行いました。不幸中の幸いでした。

2009年4月10日金曜日

Oracleのnvl関数(NULLを別の値に置換する)

select nvl(column_name, 'ヌル山') from table_name
これでcolumn_nameがNULLの場合、文字列「ヌル山」が返ります。
MySQLのifnullなんかの代わりに使えます。
http://www.shift-the-oracle.com/sql/functions/nvl-coalesce.html
ちなみにnvlは「Null Value Logic」の略だそうです。

2009年4月9日木曜日

関数の中でdistinctを使う

select count(distinct column_name) from table_name
こういう使い方もできるんですね。

2009年4月8日水曜日

MySQLのreplace構文

replace構文というのを最近知りました。

http://dev.mysql.com/doc/refman/5.1/ja/replace.html

REPLACE は、もしテーブル内の古い行が PRIMARY KEY か UNIQUE インデックスの新しい行と同じ値を持っていれば、古い行は新しい行が挿入される前に削除されるという事以外、INSERT と全く同じように機能します。


ということです。
主キーかユニークキーがあるテーブルに対して、既存レコードがある場合はupdate、レコードがない場合はinsertしてくれるというもの。

特定テーブルに対してデータの更新をする際なんか、最高に便利なんじゃないでしょうか。

自分はこういう場合、まず最初に既存レコードがあろうがなかろうが全件insertして、その後もう一度全件update、という無駄なことをやってましたが、それがこのreplace文なら一発で済むというわけです。

まだ実戦で使ってはいませんが、かなり使えそうです。

ここにも詳しく書いてありました。

http://f32.aaa.livedoor.jp/~azusa/index.php?t=mysql&p=replace

追記
INSERT ... ON DUPLICATE KEY UPDATE; というのもあるようです。
http://dev.mysql.com/doc/refman/4.1/ja/insert.html

2009年4月3日金曜日

mysqlで文字列の末尾からスラッシュを取り除く

関数使って簡単にできないかな~と思って調べてみたら、こんな感じでできることが分かりました。
SELECT TRIM(TRAILING '/' FROM column_name) FROM table_name
trim関数はいろいろと使えそうなので覚えておこうと思います。
参考
http://d.hatena.ne.jp/hosikiti/20090312/1236825301

2009年4月1日水曜日

ie6でページ内リンクが効かない


<a href="#hoge1">hoge1</a>
<a href="#hoge2">hoge2</a>
<a href="#hoge3">hoge3</a>
...
<a name="hoge1"></a>
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
...
<a name="hoge2"></a>
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
...
<a name="hoge3"></a>
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 


こういう感じのページ内リンクが、ie6でのみ効かないという状況に遭遇しました。

厳密にはhoge1だけが有効で、hoge2,3が効かない、という症状です。
ググってみたところ、やはりie6のバグみたいです。
とりあえず、aタグの中が空だとうまく動かないという記事があったので、それにならってaタグの中に要素を入れてみたところ、うまく動くようになりました。