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カテゴリ:未分類 ]

コメントの投稿













管理者にだけ表示を許可する

Template Designed By
ぐらいんだぁ