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; mysql>START TRANSACTION; mysql>SET AUTOCOMMIT=0; 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 INT型なににしようかな?と思ったときに †すっかり忘れてたのでメモ UNSIGNEDがある 参照:数値型 Comment †
Counter: 18434,
today: 1,
yesterday: 2
|