Firefox(ブラウザ)がNewバージョンの「3」を公開するようです。
明日。
で、24時間内の世界中でのダウンロード合計数で、ギネス登録を目指すらしい。
そして、アタクシはこのイベントに参加しております。
面白そうだったから。
以下のような方は、是非ともダウンロードしてみてください。
・「Google最高っ」な人。
・「Firefox好いよね」な人。
・Firefoxに興味がある人。
・ブラウザを自分好みにカスタマイズ(UI、操作感(プラグイン)など)したい人。
・IEしか使ったことがない、好奇心旺盛な人。
・他のブラウザに飽きた人。
・ギネス登録に参加してみたかった人。
・イベント好きな人。
・レッサーパンダが好きな人。
ダウンロードは簡単ですから。
もちろん、「オレはIE命なんだーっ」という方は無理にダウンロードすることもないのです。
▼クリックしてみたってください(即ダウンロード、ぢゃないです)▼
2008年6月16日月曜日
[MySQL]--SELECTで文字化の対応。
【目的】CONCAT()関数で日本語を連結して、文字化したトキの対処。
●切っ掛け
以下の様に、CONCAT()関数を使用して文字を連結して、SELECTで抽出してファイルに出力したら、文字化けした。
*MySQLマニュアル:文字列関数
(各カラムの値: a.intA = 1, a.intB = 2, a.intC = 3 )
[修正前SQL] SELECT CONCAT( a.intA, '年 ', a.intB, 'ヶ月 ', a.intC, '日' )
FROM DataTbl a
[実際の結果] 1蟷エ2繝カ譛・譌・
[欲しい結果] 1年 2ヶ月 3日
で、ネットで検索して解決したので、メモっとくのです。
○解決方法
1.先ず、CONCAT()関数を使用しているカラムの文字セットを確認。
文字セットの確認は、CHARSET(str)関数を使う。
CHARSET()関数は、'str'の文字セットを返してくれる関数。
*MySQLマニュアル:情報関数
[SQL] SELECT CHARSET( CONCAT( a.intA, '年 ', a.intB, 'ヶ月 ', a.intC, '日' ) )
[結果] binary
文字列(型)で返してほしいのに「binary」という結果。
なので、型を文字列型にキャストすることにした。
2.integer型⇒char型へキャストして、連結する。
キャストには、CAST()関数を使用。
CAST()関数は以下のように使用する。
CAST( 変換する値 AS 変換したい型)
*MySQLマニュアル:キャスト関数と演算子
ちなみに、各値に対してキャストする必要がある。
CONCAT()毎括ってキャストしようとしても、エラーになる。
[例SQL] CAST(CONCAT( a.intA, '年 ', a.intB, 'ヶ月 ', a.intC, '日' ) AS CHAR)
これはエラーを返される。
で、以下のように修正。
[SQL]SELECT CONCAT( CAST( a.intA ) AS CHAR, '年 ', CAST( a.intB ) AS CHAR, 'ヶ月 ', CAST( a.intC ) AS CHAR, '日' )
FROM DataTbl a
[結果]1年 2ヶ月 3日
うん。思うとおりの結果。各値毎にキャストするのは、ちょいと面倒ですけど。
念のため、CHARSET()関数で文字セットを確認。
[SQL] SELECT CHARSET( CONCAT( CAST( 1 AS CHAR ), '年 ', CAST( 2 AS CHAR ), 'ヶ月 ', CAST( 3 AS CHAR ), '日' ) )
[結果] utf8
OK。
●切っ掛け
以下の様に、CONCAT()関数を使用して文字を連結して、SELECTで抽出してファイルに出力したら、文字化けした。
*MySQLマニュアル:文字列関数
(各カラムの値: a.intA = 1, a.intB = 2, a.intC = 3 )
[修正前SQL] SELECT CONCAT( a.intA, '年 ', a.intB, 'ヶ月 ', a.intC, '日' )
FROM DataTbl a
[実際の結果] 1蟷エ2繝カ譛・譌・
[欲しい結果] 1年 2ヶ月 3日
で、ネットで検索して解決したので、メモっとくのです。
○解決方法
1.先ず、CONCAT()関数を使用しているカラムの文字セットを確認。
文字セットの確認は、CHARSET(str)関数を使う。
CHARSET()関数は、'str'の文字セットを返してくれる関数。
*MySQLマニュアル:情報関数
[SQL] SELECT CHARSET( CONCAT( a.intA, '年 ', a.intB, 'ヶ月 ', a.intC, '日' ) )
[結果] binary
文字列(型)で返してほしいのに「binary」という結果。
なので、型を文字列型にキャストすることにした。
2.integer型⇒char型へキャストして、連結する。
キャストには、CAST()関数を使用。
CAST()関数は以下のように使用する。
CAST( 変換する値 AS 変換したい型)
*MySQLマニュアル:キャスト関数と演算子
ちなみに、各値に対してキャストする必要がある。
CONCAT()毎括ってキャストしようとしても、エラーになる。
[例SQL] CAST(CONCAT( a.intA, '年 ', a.intB, 'ヶ月 ', a.intC, '日' ) AS CHAR)
これはエラーを返される。
で、以下のように修正。
[SQL]SELECT CONCAT( CAST( a.intA ) AS CHAR, '年 ', CAST( a.intB ) AS CHAR, 'ヶ月 ', CAST( a.intC ) AS CHAR, '日' )
FROM DataTbl a
[結果]1年 2ヶ月 3日
うん。思うとおりの結果。各値毎にキャストするのは、ちょいと面倒ですけど。
念のため、CHARSET()関数で文字セットを確認。
[SQL] SELECT CHARSET( CONCAT( CAST( 1 AS CHAR ), '年 ', CAST( 2 AS CHAR ), 'ヶ月 ', CAST( 3 AS CHAR ), '日' ) )
[結果] utf8
OK。
2008年6月13日金曜日
[MySQL]--抽出テーブルに行番号を付ける
【目的】SELECTした抽出結果に、行番号のフィールドを付加する。
②「SELECT」で、変数『@i』のカラムを指定し、インクリメント(@i:=@i+1)するようにする。
ただし、他のカラムは「*」では取得できないので、抽出したいフィールド名を指定する。
-----------------------------------------------------------①先ず、「SET」で変数『@i』に'0'をセットする。SET @i:=0;
SELECT @i:=@i+1 AS 'No',
clmA,
clmB,
clmC
FROM tblHoge
WHERE ・・・・・
------------------------------------------------------------
「SET」のクエリと、「SELECT」のクエリを流す形。
②「SELECT」で、変数『@i』のカラムを指定し、インクリメント(@i:=@i+1)するようにする。
ただし、他のカラムは「*」では取得できないので、抽出したいフィールド名を指定する。
登録:
投稿 (Atom)