「MySQL」の版間の差分

提供: sha.ngri.la
移動先: 案内検索
(SELECT文)
54行目: 54行目:
 
mysql> SELECT * FROM table1 WHERE col_name=value1 OR col_name=value2 OR col_name=value3
 
mysql> SELECT * FROM table1 WHERE col_name=value1 OR col_name=value2 OR col_name=value3
 
</pre>
 
</pre>
 +
==バイナリファイルを登録する==
 +
<code>LOAD_FILE('ファイルのフルパス')</code>を使って登録する。
  
 +
<code>max_allowed_packet</code>の上限を超えた容量のファイルや完全にアクセスできないファイル、例えば<code>/users/shangrila/file/path/a.jpg</code>に利用する場合、<code>a.jpg</code>のパーミッションが<code>644</code>でも、<code>file</code>ディレクトリのパーミションが<code>600</code>なら、アップロードできない。
 +
 +
<pre>
 +
mysql> update images set photo=LOAD_FILE('/volumes/full/path') where id=123;
 +
</pre>
  
 
[[Category:MySQL]]
 
[[Category:MySQL]]

2014年8月18日 (月) 16:24時点における版

文字化け対策

/etc/my.cnfに次のとおり追加

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

カラムのデータ型を変更する

mysql> alter table [tablename] modify [データ型];

AUTO_INCREMENTをリセットする

mysql> ALTER TABLE `table_name` AUTO_INCREMENT = 0

UNIQUEを追加する

mysql> ALTER TABLE `table_name` ADD UNIQUE(コラム名)

text,mediumtext,longtextの容量

Data Type記憶容量の上限値
BLOB,TEXT21665,536バイト
MEDIUMBLOB,MEDIUMTEXT22416,777,216バイト
LONGBLOB,LONGTEXT2324,294,967,296バイト

SELECT文

重複した行を除外して表示する。

mysql> SELECT DISTINCT col_name, ... FROM tbl_name;

where節でselect文を使う

mysql> SELECT * FROM テーブルA where カラム1 in (SELECT カラム3 FROM テーブルB where カラム2='aaa')

IN

col_nameの値がカッコ内のvalue1,value2,value3のいずれかに一致したらTRUEを返す。

mysql> SELECT * FROM table1 WHERE col_name IN (value1,value2,value3)

逆(いずれにも一致しない場合にTRUEを返す)こともできます。

mysql> SELECT * FROM table1 WHERE col_name NOT IN (value1,value2,value3)

ORを使うのと同じ

mysql> SELECT * FROM table1 WHERE col_name=value1 OR col_name=value2 OR col_name=value3

バイナリファイルを登録する

LOAD_FILE('ファイルのフルパス')を使って登録する。

max_allowed_packetの上限を超えた容量のファイルや完全にアクセスできないファイル、例えば/users/shangrila/file/path/a.jpgに利用する場合、a.jpgのパーミッションが644でも、fileディレクトリのパーミションが600なら、アップロードできない。

mysql> update images set photo=LOAD_FILE('/volumes/full/path') where id=123;