ข้ามไปที่เนื้อหาหลัก

MySql Random

เป็นการสร้าง Procedure สำหรับการ Random แถวใน Table บน Database ที่เป็น MySql 

1. เขียนคำสั่งดังต่อไปนี้เพื่อสร้าง Store procedure บน MySql

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `random_rows`(IN selected TEXT, IN tab_name VARCHAR(64), IN w_condition VARCHAR(500), IN num_rows INT)
BEGIN
SET @t = CONCAT(
    'SELECT  ',
    selected,
    ' FROM ',
    tab_name,
    ' WHERE ',
w_condition,
' ORDER BY RAND() LIMIT  ',
    num_rows);

PREPARE stmt FROM @t;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
$$
DELIMITER;

2. ทำการเรียก Store procedure 

Call random_rows('k1,k2,k3,k4,k5','tfidfnormalized',"ID LIKE '%w%'",5);



ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

crystal report  แสดงเฉพาะสตางค์เท่านั้น โดยเทคนิคนี้ผู้เขียนใช้วิธีการตัดสตริงถ้าหากผู้อ่านคนใดหลงเข้ามามีวิธีที่ดีกว่ารบกวนบอกผู้เขียนด้วยครับ 1. สร้าง Formula fields function ที่ใช้คือ  MID(Totext({Command.BALANCE}),(INSTR(Totext({Command.BALANCE}),".")+1)) หมายเหตุ : MID("ข้อความที่ต้องการตัดสริงในที่นี้ผู้เขียนต้องแปลงให้เป็นสตริงก่อน",ตำแหน่งที่ต้องการเริ่มตัดในที่นี้ผู้เขียนหาตำแหน่งที่ .(จุด) +1 (+1 คือเนื่องจากไม่เอา .(จุด) ด้วยจึงเอาตำแหน่งหลังจาก .(จุด)) ขอบคุณที่มา :  https://stackoverflow.com/questions/2986812/using-substring-in-crystal-report  

การเขียนไฟล์จาก database ด้วย Java

String DEFAULT_PATH = "c:\"; int errCode = 0 ; String errDesc = "" ;try { writer = new BufferedWriter(new OutputStreamWriter(  new FileOutputStream(DEFAULT_PATH+"bestmodeltrain.csv"), "utf-8")); String sqlupdate = "SELECT FILE_DES FROM DATA_FILE WHERE FILE_NAME = 'Train.csv'"; ResultSet rsdes= (ResultSet) new ConnectionDB().connectoDB(sqlupdate); while (rsdes.next()) { writer.write(rsdes.getString("FILE_DES")); } } catch (IOException ex) { errCode = -4; errDesc = "IOException ==> "+ex; } catch(SQLException ex){ errCode = -5; errDesc = "SQLException ==> "+ex; }