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

วิธี execute query string in mysql

1. เป็นการสร้าง Procedure
-- ----------------------------
-- Procedure structure for genCol
-- ----------------------------
DROP PROCEDURE IF EXISTS `genCol`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `genCol`(IN `str` TEXT CHARSET utf8)
    NO SQL
BEGIN
    SET @s = CONCAT('CREATE TEMPORARY TABLE tempTB as ',str,';' );
  PREPARE stmt FROM @s;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;

  SHOW COLUMNS FROM tempTB;

  DROP TEMPORARY TABLE tempTB;
END
;;
DELIMITER ;

2. วิธีเรียก Procedure CALL genCol('SELECT * FROM table_name');


ความคิดเห็น

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

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

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 );