「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 ,TEXT | 216 | 65,536バイト |
MEDIUMBLOB ,MEDIUMTEXT | 224 | 16,777,216バイト |
LONGBLOB ,LONGTEXT | 232 | 4,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;