MySQL

Rootのパスワードを忘れた場合

http://dev.mysql.com/doc/refman/4.1/ja/resetting-permissions.html

テーブルロック

InnoDBでのテーブルロック

下記の例のように、InnoDBに対してLOCK TABLEをかけると、自動的にCOMMITされてしまい、

INSERTしたとしても、それに対してトランザクションははしってなく、MyISAMと同じ動作をしてしまう。

mysql>BEGIN;
mysql>LOCK TABLE;
mysql>INSERT ・・・

FOR UPDATE

FOR UPDATEでテーブルロック。WHERE column = 1 などと指定したら行ロック。

COMMITしたら、ロックが解除される。

mysql>BEGIN;
mysql>SELECT sample_id FROM sample FOR UPDATE;
mysql>INSERT ・・・
mysql>COMMIT;

PHPからMySQLに接続

$mysql_name = 'localhost'; 
$mysql_user = 'root'; 
$mysql_passwd = ''; 
$mysql_databasename = 'sample'; 

$sql = 'SELECT * FROM sample';
$con = mysql_connect($mysql_name,$mysql_user,$mysql_passwd); 
$setectdb = mysql_select_db( $mysql_databasename , $con); 
$result = mysql_query($sql , $con); 

echo $sql;
echo '<HR>';

echo '<table border=1>';

	for ($i=0; $i < mysql_num_fields($result); $i++) {
		echo '<td>'.mysql_field_name($result, $i).'</td>';
	}
	echo '</tr>';

	while ($row = mysql_fetch_array($result)) {
		echo '<tr>';

		for ($i=0; $i < mysql_num_fields($result); $i++) {
			echo '<td>'.$row[$i].'</td>';		
		}

		echo '</tr>';
	}
mysql_free_result($result);

echo '</tr>';
echo '</table>';

datetime型のデータから日付別の集計を行う

SELECT
   c_insert, COUNT(sample_id) AS num
FROM
   (
       SELECT
           sample_id, DATE_FORMAT(sample_datetime, "%Y-%m-%d") AS c_insert
       FROM
           sample
    ) AS ct
GROUP BY
   c_insert
ORDER BY
   c_insert ASC
LIMIT
   100
SELECT 
    date(sample_datetime) AS date, count(*) 
FROM 
    sample
GROUP BY
   date
ORDER BY
   date ASC
LIMIT
   100
Counter: 16492, today: 4, yesterday: 0

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS