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

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 แสดงเฉพาะจำนวนหลังจุดทศนิยม

จากบทความที่แล้วผู้เขียนได้แสดงถึงวิธีการแสดงเฉพาะจำนวนหลังจุดทศนิยมด้วยวิธีการ Sub string แต่วันนี้ผู้เขียนได้ใช้วิธีใหม่ซึ่งเป็นสูตรการคำนวนดังต่อไปนี้ 1. สูตร : x = 30.50 y = truncate ( x ) * 100 z = ( x * 100 ) - y 2. แทนค่าใน Formula  : (({Command.xxx})* 100) - truncate({Command.xxx})*100 3. เปลี่ยน Format field :

Crystal report แสดงกล่อง Check box

Crystal report แสดงกล่อง Check box 1. สร้าง Formula fields If {Table.Field} = True Then 'แสดงเครื่องหมายถูก Formula = Chr(254) Else 'แสดงกล่องเปล่า Formula = Chr(168) End If 2. เลือกฟอนต์ Wingdings ขอบคุณที่มา : https://stackoverflow.com/questions/279907/checkbox-in-a-crystal-report
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