fc2ブログ
プロフィール

けい

Author:けい
公開したWebサービス・アプリ一覧はこちら

※2014年12月、私が個人で開発したWebサービス・アプリへの
累計アクセス数は8億を超えました。
負荷対策頑張ります。日々精進していきます!!


■■■ 業務経歴 ■■■
社会人1年目:携帯電話開発。画面周りを1年間
2年目 :海外向け携帯電話ミドルウェア開発
     ブラウザとプロトコルスタック周り
2年目後半~:携帯電話の通信専用チップ開発
3年目:カーナビ。画面周りの開発
3年目後半~:BDビデオカメラ
     組み込みLinux カーネルと
     ドライバの開発。
4年目12月:プロジェクト途中で退社
~ここまではC、またはC++で開発~

~ここからJavaがメインの開発~
4年目1月:Web系の会社に転職
       ~4ヶ月間の研修
5年目5月:製造業向け生産管理システム開発
6年目9月:証券会社向けシステム開発
7年目10月~携帯電話向けコミックサイトの運用・開発
8年目12月:プロジェクト途中で退社

~ここからPHPがメインの開発~
8年目1月~仲介手数料が無料の不動産屋の社内SEに転職
交渉しほぼ完全に裁量労働が可能な立場になる。
業務内容はシステム全般ですが、
最近はSEO対策の作業が多いです。
現在14年目 まだ、しばらくはこの会社に居るつもりです。

あと、全ての記事がリンクフリーです。

最近の記事

過去ログ

全ての記事を表示する

全ての記事を表示する

カテゴリー

FC2カウンター

RSSフィード

MySQLでハマった点を書いておく

社内の技術情報に書いている内容などをこちらにも書いておきます。

1,MySQLの検索時の大文字、小文字
・MySQLでは検索などを行う際に、大文字、小文字、全角、半角を区別しない。
utf8_general_ci と utf8_unicode_ci を設定によって何を区別するかは異なる。

utf8_general_ci
大文字小文字は区別しない。
全角半角は区別する。
utf8_unicode_ci
大文字小文字は区別しない。
濁音、半濁音、ひらがな、カタカナ、英語、全角半角を区別しない。


ところが、これらを指定していたとしても関数内では適用されない。
例えばREPLACE(置換)では、大文字、小文字、全角、半角を区別する。
例)
; aaa = "BBB"というデータが入っているとする

SELECT COUNT(*) FROM DUMMY WHERE aaa = "bbb";

上記クエリの実行すると結果は1が返りますが
以下のクエリで置換することはできません。

SELECT REPLACE (aaa, "bbb","ccc") FROM DUMMY;

2, MySQLの同一テーブルでのサブクエリ
MySQLでは通常、更新系クエリ(UPDATE, DELETE, INSERT)文では
同じテーブルをサブクエリとしては使用できないとされています。
しかし、調査を行った所、サブクエリ内のテーブル名とカラム名のみチェックしており、
ネストしたサブクエリ(サブクエリのサブクエリ)はチェックが行われないことがわかりました。

-- NGパターン
UPDATE aTable SET aDate=NOW()
WHERE aID IN
(
SELECT MAX(aID) FROM aTable
);
ERROR 1093 (HY000): You can't specify target table 'aTable' for update in FROM clause

-- サブクエリのサブクエリを作成しテーブル名、カラム名をラップしてみる
UPDATE aTable SET aDate=NOW()
WHERE aID IN
(
SELECT id FROM (
SELECT MAX(aID) as id FROM aTable
) AS x
);

激重なクエリなので用途は限られますが、
弊社では定期的なアクセス解析時などに使用しています。
スポンサーサイト



コメント(0)   2015.07.23    [ Myカテゴリ:未分類 ]

HTML5でハマった点を記録しておく。

うちが今やりとりしているデザイン会社の担当者Mさんは
単価が安い上に、学習意欲がある人なので、
長期的な視点で厳密な納期を儲けずに仕事をやって頂いています。

新技術などの要件を付けても、自分で学習してくれるので
時間制限を儲けないほうが品質が高いものが出てくるためです。

そんなデザイン会社さんとの間で、
最近、私が新たに学習した内容などを書いておきます。


1,HTML5のpattern
非常に便利でJavascriptの入力値チェックが不要になるのでは?と期待が持てる機能なのですが、
実際に動作確認を行った所・・・


入力値チェックが行われるブラウザ
PC用 Firefox
android chrome
行われないブラウザ
iPad Safari
iPhone Safari(中途半端に行われることも有り。iPadとは挙動が異なる)
android browser
入力値チェックが行われるタイミング
フォーカスが外れた瞬間
submitボタンが押された際

###############################################
重要:動的なフォームへの条件式は書けない。
本来入力値チェックを行いたくない項目であっても、
patternの記載があれば、入力値チェックが行われてしまう。

例えばラジオボタンで指定した項目のみ入力値チェックを行いたい場合や
チェックを入れると追加で入力フォームが出るようなフォームの場合でも
入力値チェックが走ってしまう。

よって、無条件でチェックを行う項目のみpatternの記載は可能である。
###############################################

2,HTML5のinput type="date"
2015年6月12日現在 このタグはまだまだ未対応の端末ばかりである。
AndroidBrowserではinput type="date"はVersion4.4以降になりようやく対応したばかりであり、
過去の端末は全く対応されていない。

以下のサイトにスマホからアクセスすると、「HTML5 “Forms 2.0” Tests」の箇所にフォーム 関連の
html5 タグ対応状況が表示されます。
http://fmbip.com/

ちなみに私が今年購入した端末でも非対応のタグは相当数存在しました。


まとめ
2015年の現在でもまだまだHTML5の「input type」は避けたほうが良い技術です。
勿論、HTML5とJavascriptの両方使う事がユーザビリティ的にもベストだとは思いますが
経営判断としてJavascriptのみという判断をする会社の方が多いのではないかと思います。

スマホの動作確認はコストが高いので
うちの会社では今後3年位はHTML5の「input type」を採用することはないかな~と思っています。

コメント(0)   2015.07.13    [ Myカテゴリ:未分類 ]
Template Designed By
ぐらいんだぁ