忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

MySQLでOracleのrownumっぽいことする

oracleにあるrownum
なにかとべんりだけど、MySQLにはないので、それに近いことをやる方法。

select @i:=@i+1 as rownum,COLUM from (select @i:=0) as dummy,TABLENAME;

サブクエリでユーザ変数を初期化してやるところがミソらしい。

set @i:=0;
select @i:=@i+1 as rownum,COLUM from TABLENAME;
これと同じ事みたい。

拍手[1回]

PR

mysql 件数を取得FOUND_ROWSとSQL_CALC_FOUND_ROWS

事前に単純にselect count(*)でもいいけど、FOUND_ROWSとSQL_CALC_FOUND_ROWSを使うと楽。
(SQLの発行1回)

$sql = 'SELECT SQL_CALC_FOUND_ROWS, id, name FROM xxx LIMIT 10';

$res = mysql_query( $sql );
$rows = mysql_query( 'SELECT FOUND_ROWS()' );
list( $cnt ) = mysql_fetch_row( $rows);

echo "件数は".$cnt."件";

while ($col = mysql_fetch_array($res, MYSQL_ASSOC)) {
    $res_data[] = array(
        echo "id:". $row["id"]. "name". $row["name"] .<br>";
    );
}
 
 

拍手[0回]

phpmyAdminでインポートできない大きなエクスポートファイルの取り込み wordpressの引越しのときとか

php.iniのmemory関連の数値を上げるとか色々あるらしいけど、単純にコマンドランインから実行してあげればよい。

/tmp にエクスポートしたdb.expがある場合

移行先のmysqlへログインし、use データベース名
該当のデータベースになったら sorce db.exp
これでOK

wordpressのDBであればexportしたファイルの中に旧URLの記述箇所がある場合それを直す。
インポートが完了したら、wordpressのインストールディレクトリにあるwp-config.phpでDBの接続情報を修正する。(必要があれば)

ちなみにWordpress関連のファイルはプラグインとか、アップした画像ファイルなどが面倒なので、旧サーバから丸ごとDLして新サーバにUPして、上記DBのインポートするほうが楽っぽいです。

拍手[0回]

mysql DB名やTABLE名の大文字小文字

Windowsのmysqlでは大文字小文字を区別しない。Linuxでは区別される。ディフォルトの話。

my.iniのlower_case_table_names=0が影響している。
Windowsはディフォルトで1なので、my.iniに

lower_case_table_names=0

を追加

8.2.2. 識別子の大文字/小文字区別より引用

意味
0 CREATE TABLEもしくはCREATE DATABASEステートメントで区別された大文字/小文字を使用してテーブルとデータベース名が記憶されます。名前比較では大文字と小文字が区別されます。大文字/小文字を区別しないファイルシステム上で、--lower-case-table-names=0を用いて変数値を0にし、かつ大文字/小文字を混ぜてMyISAM テーブル名にアクセスした場合、インデックスデータが破壊される恐れがあるので注意してください。
1 テーブル名はディスク上に小文字で記憶され、名前比較では大文字小文字は区別されません。MySQLでは、保管およびルックアップ時に全てのテーブル名が小文字に変換されます。このオプションはデータベース名やテーブルエイリアスにも適用されます。
2 CREATE TABLEまたはCREATE DATABASEステートメントにおいて、テーブルとデータベース名は指定された大文字/小文字の形態でディスク上に記憶されますが、MySQLではルックアップ時に小文字に変換されます。名前比較では大文字と小文字が区別されません。:これは大文字小文字が区別されないファイルシステムでのみ機能します。InnoDBテーブル名はlower_case_table_names=1のように、小文字で記憶されます。


拍手[1回]

MySQLでINSERT時のキー重複時に上書きしちゃうの続き

昨日書いたMySQLでINSERT時のキー重複時に上書きしちゃうの続き。
戻り値に注意(対象件数じゃない)

INSERT ... ON DUPLICATE KEY UPDATEを使って1本の列を挿入ると、その列が新しい列である場合、mysql_affected_rows()は1を戻し、既存の列を更新すると2を戻します。


このページのコレを参照23.2.3.1. mysql_affected_rows()

あとここINSERT ... ON DUPLICATE KEY UPDATE 構文ってどんな場合に使うの?もいい情報。感謝。

 

拍手[0回]

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター