ど素人から毛を生やす。<延>

Other

[MySQL]JOIN対象のセルが空の場合は指定の値でJOINしたい。

Web > Other 2018年9月25日(最終更新:26日前)

結論から言えば、IFやIFNULLはFROMでフツーに使えるゾ☆って話。

普通のJOIN。
βのid(往々にしてprimarykey)に0や空、NULLが登録されているわけでないなら、α.b_idに「値が無い」状態のときは取得できるnameがNULLになります。

IFNULL

IFNULL(expr1,expr2)
expr1 が NULL でない場合、IFNULL() は expr1 を返し、それ以外の場合は expr2 を返します。IFNULL() は、使用されているコンテキストに応じて、数値または文字列値を返します。

... 続きを読む »

[MySQL]空文字 or NULL を一息で判別したかった話

Web > Other 2018年8月21日(最終更新:19日前)

どもです。
MySQL初心者です。

カラムAにデータが入っていたらAを、入っていなかったらBの内容を取得したかったのですが、
「入っていない状態」は空文字とNULLの2パターンが想定される。
DB構成としてアカンくないか、NULL許容させんなや、などとツッコミはありますが、古いDBに文句言っても仕方ない。

さて、NULLと空文字が別物だってのは、MySQL初心者でも常識です。

NULLは「IS NULL」で、空文字は「=''」で指定、
と思ったのですが、「!=''」でNULLと空文字の両方を除外できると小耳に挟みました。

え、なにゆえ??
じゃあ「!=''」を使おう、とするには、そうなる理由がわからなくて怖い。

そう思っていましたら、こちらのQiitaの記事... 続きを読む »

[MySQL]プライマリキーとユニークキーを取得する。

Web > Other 2018年8月3日(最終更新:25日前)

どもです。
MySQLにて。

ユニークキーに設定されているカラム情報を抜き出す、という動作の需要がありまして。
ちょいと覚えておきたい内容だったので、備忘録しときます。

SHOW INDEX FROM テーブル名

これで、そのテーブルのインデックス回りの情報が抜き出せます。
SHOW INDEXのリファレンスはこちら

SHOW INDEXは、インデックスを構成する1カラムごとで1行を構成します。
つまりインデックスを貼っていたり、プライマリやユニークだったりするカラムだけを抜き出します。... 続きを読む »

Eclipseのチェックアウトでsqlite[S14]エラーが発生したとき、プロジェクト名変更で解決するかもしれない。

Web > Other 2018年3月23日(最終更新:6月前)

どもです。

現在、業務にEclipseを使用し、SVNでデータを共有管理しているのですが、
新しいプロジェクトをチェックアウトしようとしたところ、こんなエラーが。

SQLite error
svn: sqlite[S14]: unable to open database file
svn: Additional errors:... 続きを読む »

[MySQL]特定の条件下にて検索結果が1件になってしまうらしい。

Web > Other 2018年2月13日(最終更新:8月前)

どもです。
MySQLにて。

少し前にリリースしたソースに、唐突に不具合の報告が入りました。
曰く、特定の条件下にて、本来は複数件ヒットするはずの検索結果が1件になってしまうとのこと。

デバッグしてみたところ、SELECT文の出力までは問題ないように見えます。
が、確かに条件次第でMySQLからの返答が1件になってしまっています。
この条件についても、たまたま見つかった不具合であって、あくまでこうなる条件自体は不明。

今回のケースですが、原因がまさかのORDER BY。

ここのDBの構成は、ひとつの親に対し、複数の子がつきます。
そのため、子は親のIDと枝番をキーにしています。親子をJOINした状態です。求めるのは子。

こうなっていたところを、

にしたところ、何故か直りました。

結局、原因はよくわからないままなのですが、今回のケースだと、明らかに修正版の方が「正しい」。
「値が同じだからどちらでも良いだろう」とか軽いノリはダメですね。反省。... 続きを読む »

[MySQL]warning1292が出たので困ってたらすっごいケアレスミスだった話。

Web > Other 2017年12月21日(最終更新:10月前)

どもです。

MySQLにて。

1292 Truncated incorrect DOUBLE value

などという警告が発生いたしまして。
この警告、一言で概要をいうなら、

「型が違ぇぞコラ(゜-゜)」

具体的には文字型なのに数値型で検索するとかそういうので発生する奴です。

WHEREでIS NULLしている箇所を削除したらエラーが起きなくなったので、WHEREに原因があると思っていたのですが、原因はFROMの方にありまして。

LEFT JOIN ... 続きを読む »

MySQLのUPDATEでサブクエリを使用したときに陥りがちな「You can't specify target table」

Web > Other 2017年12月6日(最終更新:10月前)

どもです。

MySQLにて、とあるテーブルに対し、
カラムAが一定の値である行のカラムBと一致する、全てのカラムBの行を更新対象にする。
という処理がやりたかった。

ので、UPDATE文にサブクエリを使えば行けるかな?と思い、実行。

UPDATE 対象テーブル
SET 更新したいカラム = 'xxx'
WHERE カラムB = ANY... 続きを読む »

心当たりのない「illegal mix of collations for operation」

Web > Other 2017年10月26日(最終更新:11月前)

どもです。
MySQLにて、テスト環境では問題のなかった

CONCATが、本番環境のときだけ

illegal mix of collations for operation 'concat'

なんてエラーを吐きおってくださりました。

意味は「文字コード違うからCONCATできねーぞ?」。

カラムごとに文字コードを変更する例はありますが、
今回の場合、双方とも文字コードを特別設定していません。

では、何の文字コードが違っているのか?... 続きを読む »