บันทึกโดย TaTump วันที่ 2 August 2010 | 143 views
พอดีต้องการทำ Data Dictionary แต่ server ไม่มี phpMyAdmin ก็เลยเขียน php แบบง่ายๆขึ้นมาเพื่อแสดง Data Dictionary เลยเอามาโพสไว้ในเว็บเผื่อใครต้องการครับ Download ที่นี่
Source code
header("Content-Type: application/vnd.ms-excel");
header('Content-Disposition: attachment; filename="data_dictionary.xls"');#ชื่อไฟล์
/*----------------------
Config Database
-----------------------*/
$strCfgDbHost = "localhost";
$strCfgDbUser = "root";
$strCfgDbPass = "";
$strCfgDbName = "";
$objDb = mysql_connect($strCfgDbHost,$strCfgDbUser,$strCfgDbPass);
mysql_select_db($strCfgDbName);
if (!$objDb) { die('Could not connect: ' . mysql_error()); }
mysql_query("SET NAMES UTF8");
mysql_query("SET character_set_results=utf8");
$sql = "SHOW TABLES";
$rs = mysql_query($sql);
$i=0;
while($row = @mysql_fetch_array($rs)){
$tableArr[$i] = $row[0];
$i++;
}
@mysql_free_result($rs);
$html="";
foreach ($tableArr as $table) {
$sql="DESCRIBE $table;";
$rs = mysql_query($sql);
$html ="<h1>$table</h1>";
$html .="<br><br>";
$html .= "<TABLE border=\"1\" cellspacing=\"0\" cellpadding=\"4\" width=\"100%\">
<TR>
<TD><b>Field</b></TD>
<TD><b>Type</b></TD>
<TD><b>Null</b></TD>
<TD><b>Key</b></TD>
<TD><b>Default</b></TD>
<TD><b>Extra</b></TD>
</TR>
";
while($row = @mysql_fetch_array($rs)){
$html .= "
<TR>
<TD>$row[0]</TD>
<TD>$row[1]</TD>
<TD>$row[2]</TD>
<TD>$row[3]</TD>
<TD>$row[4]</TD>
<TD>$row[5]</TD>
</TR>
";
}
@mysql_free_result($rs);
$html .="</TABLE>";
echo $html;
}// Loop
บันทึกโดย TaTump วันที่ 16 November 2009 | 484 views
UPDATE TableName SET FieldName1 = FieldName2
จาก sql ด้านบนคือ copy ข้อมูลใน FieldName2 ไปใส่ FieldName1
บันทึกโดย TaTump วันที่ 24 August 2009 | 916 views
UPDATE TableName SET FieldName = REPLACE( FieldName ,'คำที่ค้นหา','คำที่เอามาแทน' )
คิดว่ามีประโยชน์เมื่อถึงเวลาจำเป็น
บันทึกโดย TaTump วันที่ 10 May 2009 | 872 views

Freeware ดีๆอีกตัวหลังจากที่เคยแนะนำ DBDesigner 4 ซึ่งดูแล้วก็มักจะ error บ่อยๆ ก็ลองไปใช้ดูกันนะคับ อย่างน้อยก็บั๊กน้อยกว่า DBDesigner ล่ะว๊า
Download ที่นี่จ้า : http://dev.mysql.com/downloads/workbench/5.1.html
บันทึกโดย TaTump วันที่ 22 August 2008 | 730 views
เอาเป็นว่าสมมติมีโจทย์ที่ต้องการดึงข้อมูลจาก”ตาราง Customer” ไปเก็บใน “ตาราง CustomerTmp” ซึ่งเลือกเฉพาะฟิลด์ที่ต้องการ และเก็บวันที่บันทึกลงไปด้วย โดยให้เงื่อนไขว่า เงินเดือนต้องมากกว่า 20,000 บาท ก็จะได้คำสั่งตามด้านล่างนี้
INSERT INTO CustomerTmp (Name,Salary,DateAdd) SELECT Name,Salary,NOW() FROM Customer WHERE Salary > 20000
รูปแบบก็คำสั่ง Insert ปกติ แต่สังเกตุจะไม่มี VALUES อยู่ด้วย และฝั่งข้อมูลเข้าก็จะใช้คำสั่ง SELECT ตารางกันตรงๆเลย เป็นอันเสร็จพิธีจ้า…
ตอนนี้อาจจะยังไม่มีประโยชน์ แต่ถ้าเจอโจทย์แนวนี้คงได้ใช้กันบ้างล่ะ ผมขี้ลืมเลยเอามาแป่ะไว้ดีกว่า
บันทึกโดย TaTump วันที่ 8 May 2008 | 2,275 views
อธิบายไม่ถูกขอยก ตย.แล้วกันเช่น
ให้ข่าวหนึ่งข่าวมีอายุการแสดงได้ 3 เดือน โดยเริ่มนับจากวันที่บันทึก(ฟิลด์ชื่อ “AddDate”) ก็จะได้ sql ด้านล่างนี้
SELECT * FROM TbNews WHERE (NOW( ) >= AddDate AND
NOW( ) < DATE_ADD(AddDate, INTERVAL 3 MONTH ))
แปล Sql ดังนี้
เลือกทุกฟิลด์จากตาราง TbNews โดย”วันปัจจุบัน”ต้องมากกว่าหรือเท่ากับ”วันที่บันทึก”
และ “วันปัจจุบัน” ต้องน้อยกว่า “วันที่บันทึกบวกเพิ่มอีก 3 เดือน”
บันทึกโดย TaTump วันที่ 31 December 2007 | 243 views
ตัวอย่างต้องการค้นหาเลข ‘18′ ตำแหน่งที่ ‘3′ เปรียบเทียบ ‘2′ หลัก
SELECT * FROM TableName WHERE MID(Field, 3, 2 ) = '18'
บันทึกโดย TaTump วันที่ 31 December 2007 | 246 views
ตัวอย่างเช่นหาค่า “1″ ในตำแหน่งที่ 2 ของfield
SELECT * FROM TableName WHERE FieldName like '_1%'